官术网_书友最值得收藏!

How it works…

Once we run the program, the HTTP server will start locally listening on port 8080.

Next, we will execute a couple of commands to see how the session works.

First, we will access /home by executing the following command:

$ curl -X GET http://localhost:8080/home

This will result in an unauthorized access message from the server as shown in the following screenshot:

This is because we first have to log in to an application, which will create a session ID that the server will validate before providing access to any web page. So, let's log in to the application:

$ curl -X GET -i http://localhost:8080/login

Executing the previous command will give us the Cookie, which has to be set as a request header to access any web page:

Once the previous command is executed, a Cookie will be created and saved in Redis, which you can see by executing the command from redis-cli or in the Redis Browser, as shown in the following screenshot:

Next, we will use the Cookie provided to access /home, as follows:

$ curl --cookie "session-name=MTUyMzEwNDUyM3xOd3dBTkV4T1JrdzNURFkyUkVWWlQxWklUekpKVUVOWE1saFRUMHBHVTB4T1RGVXlSRU5RVkZWWk5VeFNWVmRPVVZSQk4wTk1RMUU9fAlGgLGU-OHxoP78xzEHMoiuY0Q4rrbsXfajSS6HiJAm;" http://localhost:8080/home

This results in the Home Page as a response from the server:

Let's understand the changes we introduced in this recipe:

  1. Using var store *redisStore.RediStore, we declared a private RediStore to store sessions in Redis.
  2. Next, we updated the init() function to create NewRediStore with a size and maximum number of idle connections as 10, and assigned it to the store. If there is an error while creating a store, then we log the error and exit with a status code of 1.
  3. Finally, we updated main() to introduce the defer store.Close() statement, which closes the Redis store once we return from the function.
主站蜘蛛池模板: 屏山县| 体育| 上饶市| 连山| 当涂县| 广水市| 蓝田县| 施甸县| 延安市| 汉源县| 衡南县| 双城市| 梁河县| 临桂县| 蛟河市| 曲阳县| 盐源县| 宾阳县| 凉城县| 南宫市| 囊谦县| 内乡县| 盐山县| 武夷山市| 长白| 上虞市| 长寿区| 梁平县| 家居| 远安县| 会理县| 探索| 巴林右旗| 横峰县| 奉新县| 沙田区| 乌拉特前旗| 清苑县| 寿光市| 洛阳市| 钟祥市|