作者:Eddy  历史版本:1  最后编辑:龚清  更新时间:2024-11-20 15:41

编写版本: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_idclient_secret、加密策略以及公钥。

  • 接入端需要提供给服务端:
    地址参数,即上面的可配置的可信域名,自行开发页面可配置死参数。

服务端完成第三方接入后,获得服务端相应信息。请查看开始开发中有关登录服务实现原理,有利于理解IBPS系统接入。

三、第三方平台进行IBPS平台认证

简述:

  • 获取校验码

请求URL:

请求方式:

  • 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_idclient_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:

请求方式:

  • 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认证登录。