认证、会话管理、授权的区别
认证和会话管理
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 负责授权,不负责登录。