我正在Go / Gin中构建一个简单的Web服务器,我想使用cookie来创建一个持久的会话,如果用户离开或浏览多个页面,该会话可以保持用户登录。
理想情况下,这是流程:
初始化路由器
检查现有 Cookie
如果存在 Cookie,则获取 Cookie 令牌值
如果 Cookie 不存在,请创建新的随机令牌值
使用令牌值启动会话
使用与路由器的会话
稍后的代码将验证 cookie 令牌值是否已过期和/或是否与数据库中的活动用户相对应。
我尝试过的最新迭代是:
router := gin.Default();
token_value := func(c *gin.Context) string {
var value string
if cookie, err := c.Request.Cookie("session"); err == nil {
value = cookie.Value
} else {
value = RandToken(64)
}
return value
}
cookie_store := cookie.NewStore([]byte(token_value))
router.Use(sessions.Sessions("session",cookie_store))
但这失败了,因为token_value是func(c *gin..)类型。上下文) 字符串,而不是字符串。
我知道我在这里缺少一些东西,我希望在如何解决此问题方面得到一些指导。
动漫人物
相关分类