一: 前期沟通
1:作为接入方需要提供客户端注册信息
- 应用名称
- 应用logo
- 触发OAuth2地址:用于触发OAuth2流程地址
- 回调地址:授权通过后回调地址
2:等待平台方进行注册审批后
平台方提供一个客户端凭证(APPID)和客户端密钥(APP_secret)
3:如需要与接入端同步用户则需要平台方提供同步用户的接口,由接入方调用。
二:实际请求
# 第一步 获取授权码 #
#### 用户打开客户端以后,客户端要求用户给予授权。 用户同意给予客户端授权后 获取授权码该操作用户在登录页面设置点击按钮等,让用户点击,点击则表示统一平台认证
客户端使用上一步获得的授权,向认证服务器获取授权码。
发送请求
向平台方发送请求,申请授权码
请求url https://{ip}+{port}/oauth2/{uri}?client_id={APPID}&response_type=code&redirect_uri={callbackurl}
包含的参数 【平台方IP、平台方端口、平台方提供的url、平台方提供的url、以及接入方在接收到授权后返回的url】
认证服务器对客户端进行认证以后,确认无误,同意发放授权码。
接收请求
用户确认授权之后,会被重定向至`redirect_uri`,并追加code参数与state参数,形如:redirect_uri?code={code}&state={state} code 为授权码
# 第二步 获取令牌 #
#### 客户端使用上一步获得的授权码,向认证服务器获取令牌。发送请求
向平台方发送请求,申请令牌
请求url https://{IP}:{port} {url}?grant_type={授权类型}&client_id={APPID}&client_secret={客户端密钥(APP_secret)}&code={授权码}
认证服务器对客户端进行认证以后,确认无误,同意发放授权码。
接收请求
认证完成后会返回access_token 授权码
# 第三步 获取资源 #
客户端使用令牌,向资源服务器申请获取资源。
发送请求
向平台方发送请求,申请资源
请求url https://{IP}:{port} {url}
在hearder 中携带 参数 例如 Authorization: {第二步获取的令牌}
资源服务器确认令牌无误,同意向客户端开放资源。
接收请求
认证完成后会返回用户信息
接入端拿到客户信息后则使用该用户信息进行登录