集成应用免登对接说明

1. 概述

本文档面向需要将自有系统与简道云进行免登集成的第三方开发者,说明如何通过简道云提供的 OAuth 授权机制,实现用户无需重复登录即可在两套系统间流转。

完成对接后,用户可在以下两种场景中实现免登:

  • 在简道云产品中心单击「进入应用」,直接跳转并自动登录第三方系统
  • 在第三方系统内主动发起简道云授权,获取简道云身份信息后完成登录

本文仅讲解接口理论,具体实现示例请参考:集成应用免登对接示例

2. 授权流程

简道云提供两种授权方式,区别在于由哪一侧发起跳转:

  • 主页跳转流程:由简道云发起,适用于用户从简道云产品中心进入第三方系统的场景
  • OAuth 授权流程:由第三方系统发起,适用于用户已在第三方系统内、需要主动引导其完成简道云授权的场景

2.1 主页跳转流程

由简道云发起跳转,适用于用户从简道云产品中心进入第三方系统的场景。

1)用户在简道云单击「进入应用」,跳转至「应用首页」(第三方服务端),并在 URL 中附加 code 参数。

2)第三方服务端接收请求后,提取 code 值,调用简道云 API 接口(见第三章),兑换当前用户的身份信息。

3)第三方服务端将用户重定向至第三方系统的地址,URL 中携带获取到的简道云身份信息。

4)第三方系统识别 URL 参数中的用户信息,在自身系统中寻找对应的用户,以该用户完成登录。

2.2 OAuth 授权流程

当用户已在第三方系统内,且需要主动获取其简道云身份时,由第三方系统构造授权 URL 并将用户重定向至简道云授权页。用户完成授权后,简道云将用户重定向回指定的回调地址,并携带 code 和 state 参数。

1)构造授权 URL 并重定向用户

在用户触发简道云登录操作时,按以下格式构造授权 URL,并将用户浏览器重定向至指定地址:

https://www.jiandaoyun.com/open/user/oauth/login?app_id={Suite ID}&state={STATE}&redirect_uri={REDIRECT_URI}

URL 参数说明:

参数值

说明

必填

{Suite ID}

集成应用的 Suite ID

{STATE}

随机字符串,用于防止 CSRF 攻击,回调时需校验其与发起时的值一致

{REDIRECT_URI}

授权成功后的回调地址,域名须已配置为可信域名,值需进行 URL 编码

2)简道云回调

用户在简道云完成授权后,简道云将用户重定向至上一步设置的 redirect_uri,并附加以下参数:

参数

说明

code

授权码,用于换取用户信息,有效期较短,仅可使用一次

state

与发起授权时传入的 state 值一致

3)校验 state 参数,确认其与上一步中生成的值完全一致。校验失败时,拒绝本次请求,以防 CSRF 攻击。

4)校验通过后,在第三方服务端持有 code,调用简道云 API 接口(见第三章),兑换当前用户的身份信息。

3)第三方服务端将用户重定向至第三方系统的地址,URL 中携带获取到的简道云身份信息。

4)第三方系统识别 URL 参数中的用户信息,在自身系统中寻找对应的用户,以该用户完成登录。

3. 获取简道云登录用户信息接口

主页跳转流程与 OAuth 授权流程在获取到 code 后,均通过本接口换取用户身份信息。

⚠️ 注意:本接口须在服务端调用,不得在前端直接请求。

接口信息

接口作用

获取当前登录用户的信息,用于简道云集成第三方应用时,通过传递用户信息实现免登录访问第三方。

请求地址

https://api.jiandaoyun.com/api/v3/user/oauth/auth_info

请求方式

POST

请求说明

请求头:

参数名

参数值

是否必填

描述说明

Authorization

Bearer {Suite Secret}

Suite Secret是从集成应用中获取的核心凭证

Content-Type

application/json

-

请求体:

{
     "code": "xxxxx"
}

响应说明

成功响应字段:

字段

类型

说明

user_name

string

成员编号,成员在当前企业中的唯一ID

在「管理后台>内部组织」中可查看各个成员的编号

user_id

string

用户ID,用户账号在简道云中的唯一ID(跨企业)

在「个人设置」中可查看用户ID

tenant_id

string

租户ID,企业在简道云中的唯一ID

在「管理后台>企业信息」中可查看企业在简道云的租户ID

成功响应示例:

{
    "user_name": "jdy-developer",
    "user_id": "620a31c23e7c5a00081e7acf",
    "tenant_id": "62bd1de4b507f400065d3cd0"
}

完整调用示例(cURL)

curl --location 'https://api.jiandaoyun.com/api/v3/user/oauth/auth_info' \
--header 'Authorization: Bearer YOUR_SUITE_SECRET' \
--header 'Content-Type: application/json' \
--data '{
    "code": "USER_CODE"
}'

其中:

  • YOUR_SUITE_SECRET:替换为集成应用中获取的 Suite Secret
  • USER_CODE:替换为简道云跳转时传入的 code 参数值

核心原则

  • 身份与登录态分离:简道云仅负责提供经过验证的用户身份信息(如用户编号),第三方系统需自行维护本系统的登录态(Session、Token、Cookie 等)。
  • 密钥安全存储:Suite Secret 属于高敏感凭证,建议只存储和使用于服务端,不能暴露在任何前端代码或浏览器可访问的位置
  • code 为一次性凭证:URL 中的 code 参数为一次性临时凭证。服务端接收到请求后,应立即调用接口换取用户信息,严禁将 code 存入数据库或尝试重复使用。

文档内容是否对您有帮助?
有帮助
没帮助没帮助
如需获取即时帮助,请联系技术支持
咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验