JWT黑名单表和性能问题考虑
我目前正在使用Spring的RESTful后端。由于RESTful是无状态的,所以我决定使用JWT,因为在我的整个研究过程中,每个人都推荐使用JWT(至少对于基于REST的应用程序) 考虑到身份验证阶段的正常流程:JWT黑名单表和性能问题考虑,jwt,Jwt,我目前正在使用Spring的RESTful后端。由于RESTful是无状态的,所以我决定使用JWT,因为在我的整个研究过程中,每个人都推荐使用JWT(至少对于基于REST的应用程序) 考虑到身份验证阶段的正常流程: Frontend Backend --- Login flow (refresh token request flow). --- Login details
Frontend Backend
--- Login flow (refresh token request flow). ---
Login details -> Verify login info
|
v
Save the refresh token <- Generate JWT refresh token
--- Access token request flow. ---
Request new access token -> Generate a new Access token
|
v
Save the access token <- Give back to user
(Repeat when the access token expires)
--- Logout flow ---
Call JWT token invalidating API -> Add a refresh token and access token's hashes
to blacklist table.
|
v
Erase JWT access token and refresh token <- Return result to user.
from storage
前端后端
---登录流(刷新令牌请求流)---
登录详细信息->验证登录信息
|
v
保存刷新令牌以生成新的访问令牌
|
v
保存访问令牌添加刷新令牌和访问令牌的哈希
到黑名单表。
|
v
擦除JWT访问令牌和刷新令牌,因此我发现在身份验证和授权方面要做的比我以前想象的多得多。
正因为如此,我最终集成了外部SSO提供程序来为我管理所有的身份验证部分(特别是KeyClope)