JWT令牌身份验证的一般好处是令牌可以包含您通常在会话存储中保留的所有会话信息.这节省了大量资源,特别是在请求响应时间内,因为您不必在每个请求上查找会话数据 - 客户端会为您提供所有这些资源.
但是,它的代价是在您选择的时候无法撤销JWT令牌,因为您失去了状态跟踪.
在数据库中某处保留无效标记列表的明显解决方案会消除上述好处,因为您必须在每次请求时都要查询数据库.
更好的选择是发行短命的JWT令牌,即令牌只有一分钟有效.对于Web应用程序,普通用户可以在一分钟内执行多个请求(用户在您的应用程序中导航).您可以为每个用户提供一个持续一分钟的JWT令牌,当有过期令牌的请求到达时,您只需向他们发出一个新令牌即可.
更新:在显示过期令牌后发出新的访问令牌是一个非常糟糕的主意 - 您应该将过期的令牌视为无效,就像它已被伪造一样.更好的方法是让客户端呈现刷新令牌,该令牌将证明用户的身份,然后才发出新的访问令牌.请注意,验证刷新令牌必须是有状态操作,即.您必须拥有数据库中某个位置的每个用户的所有有效刷新令牌的列表,因为如果刷新令牌受到威胁,则用户必须具有使该令牌无效的方法.
| 归档时间: |
|
| 查看次数: |
3355 次 |
| 最近记录: |