如何在jwt身份验证中使用刷新令牌

问题描述 投票:0回答:2

我有一些关于实现刷新令牌的问题。我搜索了很多但没有发现任何东西:

  1. 我是否必须使用jwt作为刷新令牌,否则它可能是一个哈希字符串?在刷新令牌中使用jwt有什么好处?
  2. 刷新令牌应该有到期时间吗?我想在remember me功能中使用Refresh Tokens,因此如果用户在一个月后回到网站或移动应用程序,他应该能够继续作为登录用户。
  3. 我是否必须向客户端发送刷新令牌? (因为我们将它存储在数据库中,我们在注销时将其删除)
authentication jwt refresh-token
2个回答
1
投票

我正在使用JWT令牌进行刷新。它有不同的声明作为访问令牌。另外我存储了一些refreshKey声明,它也存储在数据库中。这种方法允许我撤销此令牌以防万一(例如用户阻塞功能)。

  1. 好处:您具有与访问令牌相同的验证机制(有效性检查,到期日期等)。
  2. 通常刷新令牌具有非常长的到期时间(比访问令牌更长)。建议不要使用长访问令牌,因为您无法撤消它们。只要你可以撤销它们,就可以拥有持久的刷新令牌。
  3. 是的,你必须将它发送给客户端,以保持架构无状态(我想这是你使用JWT的目的)

1
投票
  1. 客户端将使用刷新令牌从服务器获取新的访问令牌。因此,刷新令牌的格式完全取决于颁发令牌的授权服务器。如果您发出“访问令牌”和“刷新令牌”,则更容易使用相同的格式,即JWT格式。
  2. 刷新令牌必须具有到期时间。它可能比常规访问令牌到期时间长得多。它始终可以由资源配置。
  3. 您应该将刷新令牌发送到客户端,以便客户端可以使用它来请求新令牌。
© www.soinside.com 2019 - 2024. All rights reserved.