编写版本:v3.5.1
适用版本:v3.5.0+

其他系统如何使用IFORM认证登录

该文档由服务端厂商添加对应的参数信息,生成正式文档提供给第三方系统使用。
信息获取

一、概述

IFORM提供了OAuth的授权登录方式,可以让其他系统从IFORM打开的网页获取成员的身份信息,从而免去登录的环节。

二、开发前须知

1、IFORM认证服务实现原理,请点击这里,本认证登录采用授权码模式。
2、IFORM登录服务实现原理,请点击这里
3、网页授权可信域名相关。
4、关键信息获取相关

网页授权可信域名相关

REDIRECT_URL中的域名,需要先配置至应用的“可信域名”,否则会提示“redirect_uri参数错误”。

要求配置的可信域名,必须与访问链接的域名完全一致

配置的域名 是否正确 原因
doc.ankepower.com:8181 正确 配置域名与访问域名完全一致
ankepower.com:8181 错误 配置域名必须与访问域名完全一致
ankepower.com 错误 配置域名必须与访问域名完全一致,包括端口号
  • 假定配置的可信域名是:ankepower.com(创建平台时填写的url)
配置的域名 是否正确 原因
doc.ankepower.com 正确 配置域名与访问域名完全一致
ankepower.com 错误 配置域名必须与访问域名完全一致
http://doc.ankepower.com 错误 无须配置
  • 重定向网页相关
    注意:获取到对应的登录状态码后,请重定向到可信域名。

关键信息获取

  • 接入端需要向服务端人员获取以下关键信息:
    client_idclient_secret、加密策略以及公钥。

  • 接入端需要提供给服务端:
    回调地址,即上面的可配置的可信域名。

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

三、IFORM平台认证

简述:

  • 获取校验码

请求URL:

请求方式:

  • POST

请求参数:

  • Headers:
名称 类型 是否必须 默认值 备注 其他信息
Referer String 回调地址 保证请求地址和回调地址一致

暂无

  • Query:
名称 类型 是否必须 默认值 备注 其他信息
client_id String 第三方标识
redirect_uri String 回调地址
  • Body:

暂无

请求参数示例:

http://ip:port/iform/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.ankepower.com",
    "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

特别说明
完成该操作后,接入方在前端页面需要将login_state重定向到指定的回调地址

五、申请授权码

第三方申请authorize_code,具体接口请点击这里

六、申请access_token

第三方申请access_token,具体接口请点击这里
注意:第三方申请令牌参数grant_type默认值为authorization_code.

七、第三方获取用户信息

具体的用户信息获取接口,请点击这里。查看第三方获取用户信息相关的接口。

八、将获取的信息接入第三方平台

获得相应的用户授权信息后,第三方将页面转到可信的域名下,完成IFORM认证登录。

作者:hugh  创建时间:2024-06-24 14:02
最后编辑:hugh  更新时间:2024-11-25 19:17