【发布时间】:2017-01-27 14:53:39
【问题描述】:
我一直坚持让会话在 GoLang 中工作。特别是在 Iris 中。
用“Login”调用路由会打印出一个token;然后当我用 Restricted 调用路由时,令牌是空的。我做错了什么还是我误解了 GoLang 会话背后的概念?
func Login(c *iris.Context) {
username := c.FormValueString("email")
password := c.FormValueString("password")
test := "unauthorized"
if username == "jon@snow.com" && password == "123abc!@#" {
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"name": "Jon Snow",
"exp": time.Now().Add(time.Hour * 72).Unix(),
})
t, err := token.SignedString([]byte("SecretKey"))
if err != nil {
panic(err)
}
c.Session().Set("token", t)
test = c.Session().GetString("token")
}
c.Text(200, test)
}
func Restricted(c *iris.Context) {
tokenString := c.Session().GetString("token")
if tokenString != "" {
c.Text(iris.StatusOK, tokenString)
} else {
c.Text(iris.StatusOK, "no Token")
}
}
【问题讨论】:
标签: session go session-cookies