【问题标题】:Understanding the authorization part of JWT and session了解 JWT 和 session 的授权部分
【发布时间】:2020-06-21 14:27:48
【问题描述】:

所以我了解了如何使用 JWT 完成身份验证,我们基本上使用私钥验证令牌是否有效(假设 RSA 是算法)。如果令牌有效,则认为用户已通过身份验证。

我还阅读了有关会话身份验证的信息,我们在其中检查用户提供的会话 ID(通过 cookie)是否存在于会话存储中(假设 mysql/redis 用于存储会话)。如果存在,则认为用户已通过身份验证。

但是我们如何使用 JWT 和 session 进行授权呢?让我们考虑一个操作,例如 GET invoice ,用户只能查看他拥有的发票。

如果我们认为用户已经通过身份验证,

如果我们使用 JWT,我们如何检查用户是否被授权?

我们如何为会话做到这一点?

【问题讨论】:

    标签: session jwt microservices jwt-auth


    【解决方案1】:

    你可能把事情搞糊涂了。使用 JWT 的好处之一是避免维护会话,这是扩展的一大瓶颈。

    JWT(Json Web Token)携带所有需要它进行身份验证的信息,您不需要维护会话。每个对服务器的 HTTP 请求都将携带 JWT,其中包含必要的用户声明,包括签名。在服务器上,您将验证签名以验证令牌是否有效。您可以在不维护任何会话的情况下验证令牌,并且有多种方法可以做到这一点。

    由于 JWT 本质上是一个 Json 对象(标题、正文、签名),您可以在 JWT 正文中放入声明(电子邮件、角色、配置文件等)。验证令牌后,您可以提取包括任何角色的声明并检查用户是否有权访问资源。

    您必须查看 Open ID Connect 和令牌 here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-08
      • 2017-09-11
      • 2016-05-09
      • 2021-10-05
      • 2019-03-07
      • 2020-11-22
      • 2020-03-08
      • 1970-01-01
      相关资源
      最近更新 更多