Sso 登录流程
目录
先介绍
OAuth2
的授权码,然后再介绍SSO
的流程。这里的代码来自 Sa-Token。
OAuth2 授权码模式
授权码模式,涉及到两个接口,获取 code和获取 accessToken。
获取 code
接口 /oauth2/authorize
,会校验 client_id
, redirect_uri
, scope
参数,然后生成一个随机的 code
, 将 code
附加在 redirect_uri
上,最后返回 302
状态码。
获取 accessToken
接口 /oauth2/token
,会校验 code
, client_id
, client_secret
, redirect_uri
参数, 然后生成一个随机的 accessToken
, 最后返回。
SSO 流程
下面分为 sso-client 和 sso-server 两个系统。
- 在
sso-client
检查没有登录,然后跳转sso-server
的login
页面,携带redirect_uri=sso-client-uri
。 - 在
sso-server
的login
页面,输入用户名和密码,然后登录成功, 这时会有sso-server
的cookie
, 里面有token
。 - 请求
sso-server
的/oauth2/authorize?redirect_uri=sso-client-uri
, 最后返回code
并跳转到redirect_uri
页面。 - 请求
sso-client
的/oauth2/token
(需要自己实现),接受code
参数, 在sso-client
中请求sso-server
的/oauth2/token
接口,返回accessToken
。
示例代码
收录于 合集・随笔 56