文档链接
文档链接, PDF中包含一部分宣传大字制作不易还望多多支持互相交流
使用 JWT(JSON Web 令牌)实现登录身份验证和令牌续订。它将 JWT 与基于会话的身份验证进行了比较,并强调了每种方法的差异、优点和缺点。本文档介绍了基于会话的方法和基于 JWT 的方法的身份验证过程。它还讨论了与 JWT 相关的安全性、性能和过期问题。该文档最后建议使用 JWT 进行身份验证,尤其是在分布式环境中。它提供了用于生成和解析 JWT 令牌的代码示例,以及使用 Redis 实现令牌存储。该文档还包括用于登录、注销和密码更新功能的代码片段。
大意:
Session | JWT | |
---|---|---|
存储位置 | 服务器端 | 客户端 |
存储方式 | 内存/数据库 | Local Storage/Cookie |
有效期 | 服务器端控制 | Token中包含过期时间 |
扩展性 | 需要额外实现多机数据共享 | 无需额外实现多机数据共享 |
安全性 | 需要保护Session ID | 使用签名保护Token |
性能 | 需要在服务器端存储和检索Session | 无需在服务器端存储和检索Token |
废弃 | 可以主动废弃Session | 无法主动废弃Token,需要等待过期 |
续签 | 需要刷新Session的过期时间 | 需要签发新的Token |
一次性 | 每次请求都要做Session的加密解密 | 每次请求都返回新的Token |
分布式环境 | 需要额外实现多机数据共享 | 无需额外实现多机数据共享 |