我正在 Go / Gin 中构建一个简单的网络服务器,我想使用 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))
Run Code Online (Sandbox Code Playgroud)
但这会失败,因为 token_value 是 func(c *gin.Context) 字符串类型,而不是字符串。
我知道我在这里缺少一些东西,并且我希望获得一些有关如何解决此问题的指导。
谢谢!