小编典典

JWT 刷新令牌流

all

我正在构建一个移动应用程序并使用 JWT 进行身份验证。

似乎最好的方法是将 JWT 访问令牌与刷新令牌配对,以便我可以根据需要频繁地使访问令牌过期。

  1. 刷新令牌是什么样的?它是一个随机字符串吗?该字符串是否已加密?它是另一个 JWT 吗?
  2. 刷新令牌将存储在用户模型上的数据库中以供访问,对吗?在这种情况下似乎应该加密
  3. 我会在用户登录后发回刷新令牌,然后让客户端访问单独的路由来检索访问令牌吗?

阅读 131

收藏
2022-05-29

共1个答案

小编典典

假设这是关于 OAuth 2.0,因为它是关于 JWT 和刷新令牌......:

  1. 就像访问令牌一样,原则上刷新令牌可以是任何东西,包括您描述的所有选项;当授权服务器想要无状态或想要对呈现它的客户端强制执行某种“所有权证明”语义时,可以使用 JWT;请注意,刷新令牌与访问令牌的不同之处在于它不提供给资源服务器,而只提供给首先发布它的授权服务器,因此 JWTs-as-access-tokens 的自包含验证优化确实不保留刷新令牌

  2. 这取决于数据库的安全性/访问权限;如果其他方/服务器/应用程序/用户可以访问数据库,那么可以(但您的里程可能会因存储加密密钥的位置和方式而异......)

  3. 授权服务器可以同时发布访问令牌和刷新令牌,具体取决于客户端用于获取它们的授权;规范包含每个标准化赠款的详细信息和选项

2022-05-29