认证、会话管理、授权的区别

认证、会话管理、授权的区别

认证和会话管理

Authentication(认证)→ 你是谁?

确认用户真实身份。

例如:

  • 输入账号密码

  • 输入验证码

  • 扫码登录

  • 指纹/人脸识别

这些都是"认证"。

Session Management(会话管理)→ 我怎么记住你?

认证完后,在后续请求中追踪你是谁。

比如:

  • 给你一个 sid 存在 Cookie(Session)

  • 给你一个 JWT Token

  • 给你一个 Cookie 里存的 Token

这些是"维持你已经认证后的状态"。


把两个过程连起来你就懂了

① 你第一次来网站

你输入账号密码(认证)→ 服务器确认你是 Alice。

② 接下来你再访问

服务器不会让你重复输入账号密码,太难受了。

所以服务器给你一个识别符,比如:

以后你带上这个"识别符",服务器就知道你是谁。


小结

Cookie / Session / Token 识别的是"已经认证过的用户"

不负责 "认证用户本人"。

你第一次还是要靠账号密码、人脸等真正的认证方式。

授权

授权流程图如下

css 复制代码
App A(知乎) 想访问用户在 App B(微信)的信息
        │
        ▼
  跳转到微信 → 用户在微信登录(这是认证)
        │
        ▼
  微信问:"允许知乎读取你的头像吗?"(这是授权)
        │
        ▼
  用户允许 → 微信给知乎一个 authorization code
        │
        ▼
  知乎拿 code 去换 access token

总结

认证(Authentication)负责确认用户是谁。

Cookie / Session / Token 负责记住这个已经认证过的用户是谁。

OAuth2 负责授权,不负责登录。

相关推荐
代码什么用8 小时前
Spring基础使用
java·后端·spring
Su米苏8 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
码云数智-园园8 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁8 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网8 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
禾小西9 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨9 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
小卡车5559 小时前
java反射、自定义注解的应用(自定义分页)
java
BLUcoding10 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
yuniko-n10 小时前
【JUC】Lock 和 synchronzied 锁
java