JSON Web令牌实现:访问和刷新令牌

我即将实现使用JSON Web令牌(JWT)方法的认证系统。 我在网上阅读了多种方法,但他们似乎总是与我正在考虑使用的方法略有不同。

我想到的方法是:

  • 用户登录导致服务器创建刷新令牌和访问令牌。 (刷新令牌由一个ID和一个有效日期组成,访问令牌是一个包含刷新令牌ID的有效15分钟的JWT)

  • 用户可以使用访问令牌发出几个成功的请求,直到它到期

  • 一旦用户使用过期令牌进行请求,服务器将检查过期访问令牌中包含的刷新令牌ID是否与当前刷新令牌匹配

  • 如果匹配,则更改刷新标记ID并创建一个包含新刷新标记ID的新访问标记

  • 如果不匹配,请求认证

  • 我相信这种方法具有以下优点:

  • 它不需要客户端直接处理刷新令牌

  • 数据库或缓存请求必须每15分钟只进行一次,以检查刷新令牌

  • 它允许应用程序通过从数据库或缓存中删除刷新令牌来终止会话。

  • 服务器将只创建一个与刷新令牌匹配的访问令牌。 访问令牌更新后,再次使用它将不会导致其他刷新操作

  • 任何人都可以评论这个吗? 这是一个好方法吗?


    刷新令牌的目标是允许应用程序获得新的访问令牌,而无需重新进行身份验证,从而最大限度地减少被盗取令牌的影响。 如果您允许在令牌本身自动更新并包含刷新ID,那么实际上可以延长令牌的生命周期,而不会故意要求刷新令牌

    窃取智威汤逊的攻击者可以无限期地冒充用户,直到用户执行新的访问并且ID不匹配为止。

    我认为在使用专门的刷新令牌过期之前获取新的访问令牌更安全

    链接地址: http://www.djcxy.com/p/22025.html

    上一篇: JSON Web Token Implementation: access and refresh token

    下一篇: JWT handling expiration with a database