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

用访问令牌刷新令牌1:1映射

唐弘厚
2023-03-14

我已经在这里阅读了关于刷新令牌的解释:https://stackoverflow.com/a/36280559/11634814,我认为它很有意义。简而言之,刷新令牌很有用,因为每次只有一个未过期的访问令牌与每个刷新令牌相关联。如果Bob偷了Alice的refresh令牌,我们可以检测到这一点,因为他会尝试使用它用Alice的令牌发出新的请求,即使Alice的访问令牌没有过期。

当相应的访问令牌未过期时,试图使用刷新令牌发出请求是奇怪的,服务器可以检测到这一点并使刷新令牌无效。我的问题和@Rakib评论中提出的问题非常相似:

这个实现是否意味着您必须存储与单个刷新令牌关联的当前访问令牌?或者有没有一种无国籍的方法来解决这个问题?

谢谢

共有1个答案

融建树
2023-03-14

我使用了来自google和aws的refresh_token,没有任何限制。我的意思是,我能够多次使用refresh_token获得一个新的access_token,时间间隔小于过期时间(google为3600s)。

另外,根据第10.4节的规范、auth0、microsfot和这个refresh_token没有无尽的生命周期,相反,它可能会过期或失效。

因此,仅仅考虑到存在未过期的access_token,就将refresh_token标记为无效或可疑,这将使您失去一个有用的特性。

JSON Web令牌(JWT)被称为无状态,因为授权服务器不需要维护任何状态;令牌本身就是验证令牌持有者授权所需的全部。

No state简单地说是指在服务器(在您的例子中是授权服务器)中不存在与主实体或事件(在您的例子中是令牌)相关的一种活动会话。更简单地说,您可以重新启动服务器,并且不会丢失任何东西,以前生成的令牌将继续工作

因此,如果您关心的是refresh_token被盗或access_token生成的某些滥用,您应该在授权服务器中实现一个逻辑。

最后,最著名的授权服务器或IAM(auth0、okta、keycloak、google、aws、microsoft等)继续提供无状态身份验证,而不考虑大量功能(access_token/refresh_token生成、令牌吊销、用户管理等)以及在后台工作的所需复杂软件组件和策略。

 类似资料:
  • 我不熟悉,它代表。我混淆了它的两个术语:访问令牌和刷新令牌。 用户注册/登录站点后,我创建和。 将刷新标记保存在数据库或cookie中。 15分钟后,用户标记访问令牌过期。 如果用户空闲2小时,我将从cookie或DB中删除刷新令牌,否则我将使用刷新令牌续订访问令牌。 有什么优化的方法可以达到这个目的吗?

  • 我已经阅读了JWT和访问令牌和刷新令牌。我知道您必须在很短的时间(分钟)内设置访问令牌过期,并在过期时使用刷新令牌获取新的访问令牌。 我不清楚三件事: 谁检查访问令牌是否过期?客户端是否通过发送过期的访问令牌和刷新来检查并请求新的访问代码? 谁检查刷新令牌是否过期?(显然刷新令牌也需要过期,尽管需要更长的时间才能过期)。 在我看来,如果刷新令牌过期,则必须提示用户重新登录。在某些情况下(移动应用)

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

  • null 很抱歉太啰嗦了。 提前谢了。

  • 本文向大家介绍oauth 刷新访问令牌,包括了oauth 刷新访问令牌的使用技巧和注意事项,需要的朋友参考一下 示例 资源

  • 若授权服务器给客户端颁发了刷新令牌,客户端通过使用按附录B“application/x-www-form-urlencoded”格式在HTTP请求实体正文中发送下列UTF-8字符编码的参数向令牌端点发起刷新请求: grant_type 必需的。值必须设置为“refresh_token”。 refresh_token 必需的。颁发给客户端的刷新令牌。 scope 可选的。如3.3节所述的访问请求的范