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

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

认证和会话管理

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

相关推荐
TTBIGDATA1 小时前
【Hue】Ambari 页面启动 Hue 失败 user ‘hadoop‘ does not exist
java·hadoop·ambari
饺子大魔王的男人2 小时前
Remote JVM Debug+cpolar 让 Java 远程调试超丝滑
java·开发语言·jvm
Hx_Ma169 小时前
SpringMVC框架提供的转发和重定向
java·开发语言·servlet
期待のcode10 小时前
原子操作类LongAdder
java·开发语言
舟舟亢亢10 小时前
Java集合笔记总结
java·笔记
小酒窝.11 小时前
【多线程】多线程打印ABC
java
乡野码圣11 小时前
【RK3588 Android12】RCU机制
java·jvm·数据库
JAVA+C语言11 小时前
如何优化 Java 多主机通信的性能?
java·开发语言·php
编程彩机12 小时前
互联网大厂Java面试:从分布式架构到大数据场景解析
java·大数据·微服务·spark·kafka·分布式事务·分布式架构
小酒窝.13 小时前
【多线程】多线程打印1~100
java·多线程