编写版本: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.cnclient_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认证登录。