编写版本:v3.5.1
适用版本:v3.5.0+
其他系统如何使用IBPS认证登录
该文档由服务端厂商添加对应的参数信息,生成正式文档提供给第三方系统使用。
信息获取
一、概述
IBPS提供了OAuth的授权登录方式,可以让其他系统从IBPS打开的网页获取成员的身份信息,从而免去登录的环节。
二、开发前须知
1、IBPS认证服务实现原理,请点击这里,本认证登录采用
授权码
模式。
2、IBPS登录服务实现原理,请点击这里。
3、网页授权可信域名相关。
4、关键信息获取相关
网页授权可信域名相关
REDIRECT_URL中的域名,需要先配置至应用的“可信域名”,否则会提示“redirect_uri参数错误”。
应用:
1、通过IBPS去告知用户登录地址
2、前端页面自行开发也可忽略该参数(请求接口参数时保持和IBPS中保存一致即可)
要求配置的可信域名,必须与访问链接的域名完全一致
配置的域名 | 是否正确 | 原因 |
---|---|---|
doc.bpmhome.cn:8080 | 正确 | 配置域名与访问域名完全一致 |
bpmhome.cn:8080 | 错误 | 配置域名必须与访问域名完全一致 |
doc.bpmhome.cn | 错误 | 配置域名必须与访问域名完全一致,包括端口号 |
- 假定配置的可信域名是:doc.bpmhome.cn(创建平台时填写的url)
配置的域名 | 是否正确 | 原因 |
---|---|---|
doc.bpmhome.cn | 正确 | 配置域名与访问域名完全一致 |
bpmhome.cn | 错误 | 配置域名必须与访问域名完全一致 |
http://doc.bpmhome.cn | 错误 | 无须配置 |
关键信息获取
接入端需要向服务端人员获取以下关键信息:
client_id
、client_secret
、加密策略以及公钥。接入端需要提供给服务端:
地址参数,即上面的可配置的可信域名,自行开发页面可配置死参数。
服务端完成第三方接入后,获得服务端相应信息。请查看开始开发中有关登录服务实现原理,有利于理解IBPS系统接入。
三、第三方平台进行IBPS平台认证
简述:
- 获取校验码
请求URL:
- http://ip:port/ibps/oauth2/v3/authorize/apply3rd
- URL中的ip需要替换为自己网关ip
- URL中的port需要替换为自己网关端口
请求方式:
- POST
请求参数:
- Headers:
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
Referer | String | 是 | 无 | 回调地址 | 保证请求地址和回调地址一致 |
暂无
- Query:
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
client_id | String | 是 | 无 | 第三方标识 | |
redirect_uri | String | 是 | 无 | 回调地址 |
- Body:
暂无
请求参数示例:
http://ip:port/ibps/oauth2/v3/authorize/apply3rd?client_id=123&redirect_uri=doc.bpmhome.cn
client_id
及client_secret
由服务端人员提供。
返回示例:
{
"state": 200,
"request": null,
"message": "",
"cause": "",
"variables": {},
"data": "616e7580f9fa11e906ee9dff8b7b5da8" # check_code 第三方平台校验码
}
返回参数说明:
名称 | 类型 | 备注 | 其他信息 |
---|---|---|---|
state | int | 状态码 | 状态码 |
request | String | 请求路径 | |
message | String | 响应消息 | |
cause | String | 异常信息 | |
variables | String | 响应变量 | |
data | String | 第三方平台校验码 | check_code |
四、第三方获取第三方登录状态码
简述:
- 获取登录状态码
请求URL:
- http://ip:port/ibps/oauth2/v3/authorize/loginStateApply3rd
- URL中的ip需要替换为自己网关ip
- URL中的port需要替换为自己网关端口
请求方式:
- POST
请求参数:
- Headers:
暂无
- Query:
暂无
- Body:
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
clientId | String | 是 | 无 | 第三方标识 | |
redirect_uri | String | 是 | 无 | 回调地址 | |
check_code | String | 是 | 无 | 第三方平台的校验code | |
responseType | String | 是 | code | 授权类型 | 目前只支持授权码模式 |
loginVo | LoginVo | 是 | 无 | 用户信息 | 详情见示例 |
请求参数示例:
{
"client_id": "123",
"redirect_uri": "doc.bpmhome.cn",
"check_code":"616e7580f9fa11e906ee9dff8b7b5da8",
"response_type":"code",
"loginVo":{
"username":"zhangsan",
"password":"xxxxxxxxxxxxxxxxxxxxxxxxxxx" # 该处的密码是加密的,接入端需要使用服务端提供的加密策略和公钥加密密码
}
}
加密相关
接入端得到服务端提供的接口或加密策略,得到相应的加密策略后,利用公钥完成密码的加密。
返回示例:
{
"state": 200,
"request": null,
"message": "",
"cause": "",
"variables": {},
"data": "3bff013f8e27439397ad907eaad2cf56" # login_state即登录状态码
}
返回参数说明:
名称 | 类型 | 备注 | 其他信息 |
---|---|---|---|
state | int | 状态码 | 状态码 |
request | String | 请求路径 | |
message | String | 响应消息 | |
cause | String | 异常信息 | |
variables | String | 响应变量 | |
data | String | 第三方登录状态码 | login_state |
第三方获取到登录状态码之后,后续步骤与IBPS用户登录相同
五、申请授权码
第三方申请authorize_code,具体接口请点击这里。
六、申请access_token
第三方申请access_token,具体接口请点击这里。注意
:第三方申请令牌参数grant_type
默认值为authorization_code
.
七、第三方获取用户信息
具体的用户信息获取接口,请点击这里。查看第三方获取用户信息相关的接口。
八、将获取的信息接入第三方平台
获得相应的用户授权信息后,第三方将页面转到可信的域名下,完成IBPS认证登录。