繁体   English   中英

访问令牌:撤销与删除

[英]Access Tokens: Revoke vs Delete

我正在使用dusterio/lumen-passport创建路由/user/logout并且在控制器操作中我手动撤销令牌,这会导致用户被注销。

我有两个注销用户的选项。 撤消令牌(将令牌保留在数据库中 - 只需设置一个标志,告知令牌无用)并删除令牌。

我的问题很简单:

管理令牌的最佳方法是什么? 我应该通过删除或撤销来退出吗?

将来,我将使用redis存储令牌,所以我想我应该删除令牌,因为在redis服务器中保留过期数据是没有意义的。

1)撤销/使令牌无效。

2)每次调用受保护的API时,都应检查令牌有效性,然后才相应地提供请求。

3)如果您遇到无效令牌,请将用户重定向到登录页面并在成功验证时发出有效令牌,然后再将其重定向到请求的页面。

使用这种方法,即使在同一浏览器的另一个选项卡/窗口中打开现有会话,并且如果用户在注销/会话超时后尚未登录,这将始终确保始终使用有效令牌。

存储过期的令牌绝对没有意义。 将JWT令牌存储在数据库中是不正确的做法。 它们只应存储在会话数据中,并在更改有效性时删除/替换。

因此,仅在会话数据中为特定目的存储单个有效JWT令牌。 假设您的JWT令牌发行者服务器具有最佳实现,请确保您永远不会再次获得相同的JWT令牌。 所以在到期后存储它们绝对没有意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM