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

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

认证和会话管理

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

相关推荐
程序员清风17 小时前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
皮皮林55118 小时前
利用闲置 Mac 从零部署 OpenClaw 教程 !
java
华仔啊1 天前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端
SimonKing1 天前
SpringBoot整合秘笈:让Mybatis用上Calcite,实现统一SQL查询
java·后端·程序员
日月云棠2 天前
各版本JDK对比:JDK 25 特性详解
java
用户8307196840822 天前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide2 天前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
IT探险家2 天前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java
花花无缺2 天前
搞懂new 关键字(构造函数)和 .builder() 模式(建造者模式)创建对象
java
用户908324602732 天前
Spring Boot + MyBatis-Plus 多租户实战:从数据隔离到权限控制的完整方案
java·后端