首页 > 解决方案 > JWT 认证策略

问题描述

现在我很困惑是否应该在会话中存储 JWT 令牌

我是不是该

  1. 创建 Token 后将其存储在 Redis 中

    // JWT TOKEN
    token := CreateToken(user)   
    
    // Storing it in Gorilla Session + Redis     
    s := sessions.Default(c)
    s.Set("token", token)
    s.Save()
    

因此,然后从服务器获取令牌,而不是从请求标头的后续请求中获取令牌

    s.Get("token")
    // and to something with it
  1. 在后续请求中传递令牌,因此在每个需要令牌的路由中

    func login(c *gin.Context) {
        c.Getheader("Authorization")
    }
    

我正在使用杜松子酒框架

哪种方法更好的会话或用户的后续请求

问候, 瑙法尔

标签: gojwt

解决方案


如果您创建一个客户端- 那么是的,因为您已经获得了 a 令牌,您应该存储它并与后续请求一起传递。

如果您制作服务器-则不。您无需存储已颁发的令牌,但您应在收到客户请求的任何时候对其进行验证。通过这种方式,您可以使您的服务无状态且更具可扩展性。


推荐阅读