纷享销客开发者手册 纷享销客开发者手册
  • APL开发手册
  • PWC开发手册
  • OpenAPI 文档
  • 快速入门
  • API 授权流程
  • API 基础说明
  • OpenAPI
  • 免登集成方案
  • 客户端开发
  • 常见问题
  • OpenApi V1版本 (opens new window)
  • 简体中文
  • English
  • 快速入门
  • API 授权流程
  • API 基础说明
  • OpenAPI
  • 免登集成方案
  • 客户端开发
  • 常见问题
  • OpenApi V1版本 (opens new window)
  • 简体中文
  • English
  • 快速入门

  • API授权流程

    • OAuth授权认证

      • 客户端凭证模式
      • 授权码模式
        • 刷新令牌
    • API基础说明

    • OpenAPI

    • 免登集成方案

    • 客户端开发

    • 常见问题

    目录

    授权码模式

    OAuth 2.0 中最常用、最安全的模式,需用户参与授权,适用于有后端的Web应用。用户授权后,认证服务器返回授权码,客户端再用授权码交换访问令牌。流程安全,能保护令牌和用户数据,支持长期权限且可刷新令牌。

    # 流程图

    流程图

    通过 CODE 获取用户身份会有一定的时间开销。对于频繁获取用户身份的场景,建议采用如下方案:

    • 用户跳转到企业应用页面时,企业应用校验是否有代表用户身份的 cookie(此 cookie 由企业应用生成)
    • 如果没有获取到 cookie,调用身份验证接口,获取用户身份后,由企业应用生成代表用户身份的 cookie。根据 cookie 获取用户身份,进入相应的页面

    # 获取 code

    # 请求说明

    请求方式:GET

    请求路径:https://${填入所在云的域名}/oauth2.0/authorize?responseType=code&appId=APPID&redirectUrl=REDIRECTURL&state=STATE&thirdTraceId=${随机字符串}

    # 请求参数

    参数 参数类型 必须 说明
    appId String 是 自建应用的 appId
    redirectUrl String 是 回调地址,域名需要与创建应用填写的 web 端跳转地址保持一致
    responseType String 是 固定值:code
    state String 是 用于第三方应用防止 CSRF 攻击,成功授权后回调时会原样带回
    thirdTraceId String 是 用于标识每一次请求

    # 请求示例

    https://open.fxiaoke.com/oauth2.0/authorize?responseType=code&appId=FSAID_xxx&redirectUrl=https://www.yoururl.com/xxx&state=77598SDASF&thirdTraceId=5ea0422d-98e3-49e0-a3cb-9bd5517d1f30
    
    # state 值说明

    在发起授权流程生成 state 参数时,要保证随机生成,并且尽量避免重复。例如:state = MD5(时间戳 + 当前帐号)。纷享在授权完成后,将重定向到开发者的服务器。此时开发者的服务器应检测 state 参数是否一致,如果不一致,开发者的服务器应该拒绝此请求,并且不再发起换取 access_token 的请求。如果一致,则流程正常运行。

    强烈建议开发者实现以上过程,以防止 CSRF 攻击。

    # redirectUrl 值说明

    域名需要与应用详情页中的登录授权发起页域名保持一致。例如你填写的登录授权发起页域名是www.fxiaoke.com,那么你现在需要填写的redirectUrl就是https://www.fxiaoke.com/xxx,具体回调到哪个页面由企业自行决定,保证该页面可以正常访问即可。

    redirectUrl

    # 返回参数

    参数 参数类型 说明
    code String 授权码
    state String 用于第三方应用防止 CSRF 攻击,成功授权后回调时会原样带回

    # 返回示例

    https://www.fxiaoke.com/xxx?code=xxxxxxx&state=77598SDASF
    

    # 获取 token

    通过 code 来获取 token。

    # 请求说明

    请求方式:POST + application/json

    请求路径:https://${填入所在云的域名}/oauth2.0/token?thirdTraceId=${随机字符串}

    # 请求参数

    参数 参数类型 必须 说明
    appId String 是 自建应用的 appId
    appSecret String 是 自建应用的 appSecret
    redirectUrl String 是 回调地址
    code String 是 授权码 code
    grantType String 是 授权模式,固定值为:authorization_code

    # 请求示例

    {
        "appId": "FSAID_xxxx",
        "appSecret": "98xxxx62e7d",
        "redirectUrl": "https://www.fxiaoke.com/xxx",
        "code": "xxxxx",
        "grantType": "authorization_code"
    }
    

    # 返回参数

    参数 必须 说明
    openUserId 是 用户的 openUserId
    accessToken 是 授权凭证 token,有效期两个小时
    corpId 是 开放平台派发的公司帐号
    expiresIn 是 过期时间
    refreshToken 是 用于刷新 accessToken,有效期两个月

    # 返回示例

    {
        "errorCode": 0,
        "errorMessage": "success",
        "openUserId": "FSUID_xxxxx",
        "accessToken": "xxxxxx",
        "corpId": "FSCID_xxxxx",
        "refreshToken": "xxxxx",
        "expiresIn": 1580000000
    }
    
    客户端凭证模式
    刷新令牌

    ← 客户端凭证模式 刷新令牌 →

    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式