【问题标题】:Golang iris sessions are not persistentGolang iris 会话不是持久的
【发布时间】: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


    【解决方案1】:

    你应该先导入会话包go get "github.com/kataras/iris/sessions" 然后用var sess = sessions.New(sessions.Config{Cookie: "cookie-name" })read this documentation to see how this work创建一个会话

    【讨论】:

      猜你喜欢
      • 2013-10-29
      • 2017-04-19
      • 2019-01-29
      • 1970-01-01
      • 2012-11-20
      • 2012-03-17
      • 2019-10-13
      • 2014-09-08
      • 1970-01-01
      相关资源
      最近更新 更多