单点登录是怎样实现的?OAuth 2.0 的授权码模式是什么流程?
先自己想一想,再看参考要点
参考要点
- 多个系统在同一个父域名下时,把会话 Cookie 设置为 Domain=example.com 就能共享
- 域名不同时用统一的认证中心:没有会话就重定向到认证中心,认证中心已经登录过就签发一次性票据重定向回来,业务系统的后端拿票据向认证中心验证后建立自己的会话
- OAuth 2.0 解决的是授权第三方读取用户的数据而不交出密码,授权码经过浏览器传回,访问令牌由后端用授权码换取,不经过浏览器
- PKCE 的 code_verifier 和 code_challenge 防止授权码被截获后换到令牌,state 防止 CSRF
- OAuth 2.0 只负责授权,登录用 OpenID Connect 的 ID Token