加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Jwt-Auth可以在多服务器配置中处理无效令牌吗?

发布时间:2020-12-13 16:31:05 所属栏目:PHP教程 来源:网络整理
导读:我有一个Laravel REST API,它使用tymondesigns / jwt-auth进行身份验证,并希望将应用程序从单一服务器扩展到多服务器配置,并使用前端的负载平衡器. 该流程使用RefreshToken中间件,并且基本上每个请求后都会使令牌无效,并且与响应一起返回一个新的令牌. (http
我有一个Laravel REST API,它使用tymondesigns / jwt-auth进行身份验证,并希望将应用程序从单一服务器扩展到多服务器配置,并使用前端的负载平衡器.

该流程使用RefreshToken中间件,并且基本上每个请求后都会使令牌无效,并且与响应一起返回一个新的令牌. (https://github.com/tymondesigns/jwt-auth/wiki/Authentication)

在多服务器配置中,jwt将如何管理无效令牌,其中令牌使用一个服务器无效,并且使用无效令牌的新请求在另一台服务器上命中?

正确的方法是将 jti claim与exp和iat索赔一起包括在内.

另一种方法是(如果可以)在您的令牌中包含服务器ID(或唯一键).您可以实现一个服务器到服务器的jwt协议,但我认为这将是昂贵的.

另一种方法是让您同步服务器之间的令牌.我会使用一个memcached守护进程(也许在你的前端服务器上),它会保留一个新的无效的令牌列表.如果令牌仅对一个请求有效,则memcached会在使用时立即收到无效的令牌(可能在RefreshToken中间件中).基于令牌时间戳记,您可以确定令牌是否无效(无需进入memcached服务器),或者如果它是新的,您将检入已消耗令牌的memcached列表. memcached也将有一个到期时间.这种方法有很多优点(例如,可以使用标签).如果您将此列表视为日志文件,您仍然可以说您没有使无状态原则无效:)

希望有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读