身份验证工作原理:JWT 与会话对比解析

发布: (2026年3月10日 GMT+8 15:50)
3 分钟阅读
原文: Dev.to

Source: Dev.to

什么是身份验证?

身份验证是指在授予用户访问系统的权限之前,验证其身份的过程。

例如,当用户登录网站时:

  • 用户输入凭证(电子邮件/密码)
  • 服务器验证这些凭证
  • 服务器创建一种方式来记住用户的身份,以便后续请求使用

第三步就是会话(session)或 JWT 令牌发挥作用的地方。

基于会话的身份验证

会话的工作原理

当用户登录时:

  1. 用户向服务器发送登录凭证。
  2. 服务器验证凭证。
  3. 服务器在服务器端创建会话。
  4. 会话 ID 作为 Cookie 返回给浏览器。
  5. 浏览器在每次请求时都携带此 Cookie。

服务器随后检查会话 ID,以确定用户是否已通过身份验证。

Session diagram

会话身份验证的优势

  • 实现简单
  • 易于撤销会话
  • 使用 HTTP‑only Cookie 时更安全
  • 框架支持良好

限制

  • 会话需要服务器端存储
  • 在分布式系统中更难扩展
  • 需要在服务器之间同步会话

JWT 身份验证

JWT(JSON Web Token)身份验证在现代 API、微服务和移动应用中被广泛使用。

与在服务器上存储会话数据不同,JWT 将身份验证信息直接存放在令牌本身中。

什么是 JWT?

JWT 是一种紧凑且安全的令牌,用于在客户端和服务器之间传输信息。

典型的 JWT 包含三个部分:

  1. Header(头部) – 描述令牌类型和签名算法。
  2. Payload(负载) – 包含声明(例如用户 ID、过期时间)。
  3. Signature(签名) – 验证令牌未被篡改。
0 浏览
Back to Blog

相关文章

阅读更多 »