我目前正在使用expressjs进行一个项目。对于用户授权,我使用JWT令牌,但到目前为止只使用访问令牌,因为我无法将它们与实际示例结合起来理解。谁能给我解释一下,当有人登录他的账户时,授权是通过哪些步骤的?
例如:
- 刷新和访问令牌生成
- 令牌被存储到数据库等
提前谢谢你,祝你有美好的一天
- 用户发送带有登录凭证的POST请求
- 服务器验证,如果成功,返回JWT(通常在httpOnly cookie中)。服务器不将jwt存储在数据库中。JWT的要点在于身份验证状态由它的持有者存储。
- 对于对受保护端点的后续请求,客户端需要附加JWT。服务器应该检查JWT是否过期以及是否被修改。
您可能想要考虑的扩展:
- 如何刷新jwt:
有不同的刷新模式可以被使用。为例如,您可以检查JWT的过期服务器接收到请求。如果JWT即将到期,则发出一个新的JWT。 - 如何在客户端维护身份验证状态,而不必每次刷新页面都登录
- 如何真正注销用户:
如果您设置有效期为30分钟,并且用户在第15分钟时注销,那么从技术上讲,该JWT仍然可以用于访问受保护的端点15分钟。