Dep*_*man 15 security oauth-2.0 laravel lumen laravel-passport
我正在创建一个路由/user/logout使用dusterio/lumen-passport和在控制器操作中我手动撤销令牌,导致用户被注销.
我有两个注销用户的选项.撤消令牌(将令牌保留在数据库中 - 只需设置一个标志,告知令牌无用)并删除令牌.
我的问题很简单:
管理令牌的最佳方法是什么?我应该通过删除或撤销来退出吗?
将来,我将使用redis存储令牌,所以我想我应该删除令牌,因为在redis服务器中保留过期数据是没有意义的.
1)撤销/使令牌无效.
2)每次调用受保护的API时,都应检查令牌有效性,然后才相应地提供请求.
3)如果您遇到无效令牌,请将用户重定向到登录页面并在成功验证时发出有效令牌,然后再将其重定向到请求的页面.
使用这种方法,即使在同一浏览器的另一个选项卡/窗口中打开现有会话,并且如果用户在注销/会话超时后尚未登录,这将始终确保始终使用有效令牌.
存储过期的令牌绝对没有意义.将JWT令牌存储在数据库中是不正确的做法.它们只应存储在会话数据中,并在更改有效性时删除/替换.
因此,仅在会话数据中为特定目的存储单个有效JWT令牌.假设您的JWT令牌发行者服务器具有最佳实现,请确保您永远不会再次获得相同的JWT令牌.所以在到期后存储它们绝对没有意义.
| 归档时间: |
|
| 查看次数: |
1727 次 |
| 最近记录: |