登录
首页 >  Golang >  Go问答

JWT 认证方案

来源:stackoverflow

时间:2024-03-19 18:18:29 262浏览 收藏

JWT(JSON Web Token)认证方案是一种流行的安全机制,用于在客户端和服务器之间安全地传输身份信息。然而,在使用 JWT 时,一个关键问题是令牌的存储和检索。本文探讨了两种方法:将 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")
    }

我正在使用gin框架

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

问候, 诺法尔


解决方案


如果您创建一个客户端 - 那么是的,当您获得令牌时,您应该存储它并通过后续请求传递。

如果您创建一个服务器 - 那么不行。您无需存储已颁发的令牌,但您应该在收到客户端请求时随时对其进行验证。通过这种方式,您可以使您的服务无状态且更具可扩展性。

本篇关于《JWT 认证方案》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>