你都知道哪些登录?OAuth2.0联合登录&&SSO单点登录
SSO单点登录 Single Sign-on
注:图片来自,UP主张朝阳讲编程
https://www.bilibili.com/video/BV1Mi7wzEEV4/?spm_id_from=333.337.search-card.all.click&vd_source=868bfa43469370e22ae273ea43cdc8e1
Single Sign-on 单点登录
sso流程


-
用户发起资源请求
用户向
app1发送/resource请求,想要访问受保护的资源。 -
App1 重定向到 SSO 认证中心
app1检测到用户未登录,将用户重定向到 SSO 服务的登录页面,携带参数/login?ref=app1.com/resource,ref用于记录用户原本要访问的 App1 资源地址。 -
SSO 返回登录页面
SSO 服务向用户返回
login.html登录页面,同时保留ref=app1.com/resource参数,让登录后能跳回原资源页。 -
用户提交登录信息
用户在登录页输入
username和password,向 SSO 发送/login/submit?ref=app1.com/resource请求提交认证信息。 -
SSO 重定向回 App1 并携带令牌
SSO 验证用户账号密码通过后,生成
sso_token(SSO 的身份令牌),并将用户重定向回app1.com/resource? sso_token=xxx,把sso_token传递给 App1。 -
App1 向 SSO 验证令牌有效性
App1 拿到
sso_token后,向 SSO 发送/authentication请求,携带该令牌,确认令牌是否合法、有效。 -
SSO 返回验证结果
SSO 验证
sso_token通过,向 App1 返回ok的确认响应。 -
App1 生成自身令牌并返回资源
App1 收到验证通过的结果后,生成
app1_token(自身系统的登录令牌),通过Set-Cookie将sso_token和app1_token写入用户浏览器,最后向用户返回请求的resource资源,完成登录与资源访问。
其他登录场景
- OAuth2.0:给第三方授权用我的信息
- 联合登录:用微信 / QQ / 微博登录别的网站,是一种场景
- SSO 单点登录:同一家公司的多个产品,登一次全通用
详细对比
1. OAuth2.0
本质:授权协议
- 作用:让 A 网站能安全地 “借用” B 平台的身份,但不给密码
- 核心:授权,不是登录本身
- 例子:你允许某个 App 获取你的微信头像、昵称
2. 联合登录(第三方登录)
本质:一种登录方式
- 就是我们常说的:
- 微信登录
- QQ 登录
- GitHub 登录
- 它底层通常用 OAuth2.0 实现
- 特点:跨平台、跨公司,你在小网站用大厂账号登录
典型流程
- 第三方网站 → 跳转到微信 / QQ 登录页
- 你在官方页登录、同意授权
- 官方给第三方发一个令牌(Token)
- 第三方拿令牌访问你的信息,全程看不到密码
3. SSO 单点登录(Single Sign On)
本质:同体系内一次登录,全站通行
- 场景:同一个公司 / 集团内部系统
- 例子:
- 登录了支付宝 → 淘宝自动登录
- 登录百度账号 → 贴吧、网盘、文库都不用再登
- 企业后台:登一次 OA、CRM、ERP 全通
- 特点:同一家、一套账号体系、只输一次密码
最清晰的区别表
| OAuth2.0 | 联合登录 | SSO 单点登录 | |
|---|---|---|---|
| 是什么 | 授权协议 | 登录方式 | 登录机制 |
| 关系 | 联合登录的底层技术 | 基于 OAuth 实现 | 自己一套独立方案 |
| 场景 | 跨平台授权 | 用微信 / QQ 登别的网站 | 同公司多产品互通 |
| 关键词 | 授权、令牌、权限 | 第三方登录、快捷登录 | 一次登录、多处通行 |
| 典型例子 | 允许获取头像、公开信息 | 网站点 “微信登录” | 登淘宝→支付宝自动登录 |
更多推荐

所有评论(0)