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

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

认证和会话管理

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 负责授权,不负责登录。

相关推荐
Devin~Y6 分钟前
高并发电商与AI智能客服场景下的Java面试实战:从Spring Boot到RAG与向量数据库落地
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag
蜡台11 分钟前
IDEA 一些 使用配置和插件
java·ide·intellij-idea
磊 子36 分钟前
redis详解2
java·spring boot·redis
白露与泡影36 分钟前
Java面试题库及答案解析(2026版)
java·开发语言·面试
程序员阿明1 小时前
spring boot3 集成jjwt(java-jwt)版本的
java·spring boot·python
bbq粉刷匠1 小时前
Java--剖析synchronized
java·开发语言
ayt0071 小时前
Netty AbstractNioChannel源码深度剖析:NIO Channel的抽象实现
java·数据库·网络协议·安全·nio
Gofarlic_OMS1 小时前
装备制造企业Fluent许可证成本分点典型案例
java·大数据·开发语言·人工智能·自动化·制造
码王吴彦祖1 小时前
顶象 AC 纯算法迁移实战:从补环境到纯算的完整拆解
java·前端·算法
开心码农1号2 小时前
Java rabbitMQ如何发送、消费消息、全套可靠方案
java·rabbitmq·java-rabbitmq