当前位置: 首页 > 知识库问答 >
问题:

前端和后端的JWT令牌策略

黄鸣
2023-03-14

什么应该是我的JWT身体的一部分?我在想uid和提供者提供了访问令牌。我在这里可以想到的一个问题是,提供程序特定的访问令牌可以更改。用户可以从提供商的站点撤消令牌,并再次使用emberjs注册。

我愿意在任何其他javascript客户端框架中编写前端,如果它使它更容易的话。

共有1个答案

鲜于德业
2023-03-14

如果我们讨论的不仅是工作身份验证,而且是安全的无状态身份验证,则需要考虑使用accessrefresh令牌的适当策略。

>

  • 访问令牌是提供对受保护资源的访问的令牌。过期这里可能大约在1小时内安装(取决于您的注意事项)。

    刷新令牌是一种特殊的令牌,当访问令牌过期或用户会话更新时,应使用它生成附加的访问令牌。显然,您需要使其长期存在(与访问令牌)并尽可能地安全。过期这里的安装大约需要10天甚至更长时间(也取决于您的注意事项)。

    这些代币存放在哪里?

    常见的地方基本有2个:

    1. HTML5 Web存储(localstorage/sessionstorage)

    关于智威汤逊本身的几句话:

    为了说明这一点,Auth0 Guys提供了非常酷的JWT调试器。常见的声明类型有2种(有时为3种):publicprivate(和保留)。

    JWT正文的一个示例(有效负载,可以是您想要的任何负载):

    {     
      name: "Dave Doe",
      isAdmin: true,
      providerToken: '...' // should be verified then separately
    }
    

  •  类似资料:
    • 我正在构建一个使用JWT进行身份验证的应用程序。我开始做一些研究,但对于诸如刷新令牌和令牌存储之类的主题缺乏共识,我感到惊讶。 据我所知,JWT和OAuth是两个不同的协议,它们遵循不同的规范。 但我的问题是,对于一个没有通过第三方资源服务器如Google、Facebook等认证的应用程序,有一个刷新令牌真的有用吗?为什么不让JWT令牌像刷新令牌一样持续时间长。 另一方面,我可以看到,如本文所述,

    • 我所有的请求都有403个被禁止的回复。我发送的firebase令牌正在成功验证,所以我不确定设置时缺少了什么步骤?我只是想让一个简单的流工作,其中我的endpoint必须在头中有有效的firebase JWT令牌(在排除的健康endpoint之外)。 当前步骤: 自定义OncePerRequest estFilter已创建并正在相应的endpoint上命中 授权头令牌成功验证 身份验证对象创建为U

    • 问题内容: 我正在使用JWT保护节点js URL https://github.com/auth0/express- jwt 要创建JWT令牌用户会话,我只需执行以下操作: 或在登录电话的情况下 每次调用受保护的URL时,我都会检查JWT中间件是否自动设置了该URL 。 现在我想知道: 1-调用sign()时,JWT令牌存储在哪里? 2-每次调用受保护的网址时,我都必须验证()令牌吗?如果是,为什

    • 我有带有azure ad b2c的前端(https://github.com/Azure-Samples/ms-identity-b2c-javascript-spa)。用户登录后,azure AD返回SPA令牌。我使用此访问令牌调用springbooapi。 我的springboot应用程序如何验证acess令牌并使用此令牌从azure ad b2c获取用户信息。 谢谢

    • 这是我的身份验证流程: 用户登录后收到两个令牌(具有过期时间的访问令牌和没有过期时间的刷新令牌) 对于每个用户,刷新令牌存储在数据库中名为refreshTokens的json列中(这是一个数组) 在客户端,访问令牌和刷新令牌都存储在本地存储器上 当需要验证用户时,如果访问令牌过期,将使用刷新令牌创建一个新的访问令牌,并将其发送回用户并保持用户登录 当用户注销时,数据库中存储的刷新令牌(在refre

    • 我注意到惯例是在字段授权下的标题中发送一个JWT。标准是这样发送令牌: 我的问题是为什么我需要把不记名部分为什么不干脆: 当我收到第一个请求时,我需要在验证我的 JWT 时解析每个请求以摆脱持有者。这有什么意义呢?