第三方平台Oauth接入
所有文档

          百度智能门户 AIPAGE

          第三方平台Oauth接入

          简介

          本文档主要介绍第三方平台使用自有oauth接入aipage智能门户账户体系,并且支持免登录自动进入管理后台,方便第三方平台用户直接进入aipage平台进行站点管理操作。前提条件是第三方平台已经有站点管理并且通过oauth机制打通aipage账户体系。

          接入流程

          登录流程与oauth登录基本一样,通过code及鉴权配置获取用户accessToken及openid,然后再获取用户信息(名称、id等)实现账号打通。接入步骤如下:

          • 发送邮件给aipage@baidu.com, 提供接入方的应用标识(英文字母)、百度智能云账户acountId、获取用户token及用户信息的接口地址,以及提供给aipage的获取token的鉴权 keysecret(如没有请自行确保数据安全)
          • 改造自身oauth/登录流程,在用户点击站点管理等操作时获取oauth code参数并传递相关参数到登录回调页面,使用前端跳转登录aipage

          AIPage在收到申请审核通过一个工作日内将添加第三方登录配置到线上环境。

          登录流程

          1. 第三方平台跳转 AIPage 登录免确认登录接口,query 中携带相关参数
          2. AIPage 通过参数中的code等参数获取配置,请求第三方平台获取访问访问token接口
          3. AIPage 根据访问token请求第三方平台获取用户信息,登录成功,跳转站点后台并自动赋予指定的角色(默认为副站长权限,拥有续费、用户管理外所有权限)

          API说明

          免确认登录接口(AIPage)

          接口说明

          GET: https://aipage.bce.baidu.com/oauth/callback

          请求参数

          参数名称 是否必填 说明
          code oauth code, 一段时间内有效的方便获取用户token的值
          appName 接入方的应用标识(英文字母)
          siteId aipage网站id, 有的情况下会自动添加用户管理角色并进入站点后台
          redirectUri 自定义跳转地址
          role 用户角色,默认为副站长:editor,可设置站长:site-admin或无域名及用户管理权限角色:dnr-user

          返回结果

          正常情况下用户流程为第三方平台触发登录,根据地址直接跳转自动进入管理后台,并且用户自动获得相关角色权限。可以在管理员设置里检查角色是否设置成功。

          获取访问token接口(第三方)

          GET接口,地址确定好后提供给AIPage,aipage在收到用户免登回调请求时将获取code及第三方平台提供的appid和密钥信息传递给第三方获取访问token。

          请求参数

          参数名称 是否必填 说明
          appid 第三方平台认证id
          secret 第三方平台认证密钥
          code 访问code
          grant_type 固定为 authorization_code

          返回结果

          参数名称 是否必填 说明
          openid 第三方平台用户openid
          access_token 第三方平台用户访问token
          {
            access_token: "token值",
            openid: '用户openid'
          }

          如有错误,返回如下格式:

          {
             error: "err msg"
          }

          获取用户信息接口(第三方)

          GET接口,由第三方提供,aipage获取访问token后将请求第三方接口获取用户信息,参数说明如下:

          请求参数

          参数名称 是否必填 说明
          access_token 第三方平台用户访问token
          openid 第三方平台用户openid

          返回结果

          {
            nickname: "张三", // 用户昵称
            username: "张xx", // 用户账号名称,昵称与账户名称必须至少有一个
            openid: '00123', // 用户唯一标识ID
            headimgurl: 'http://xxx'  用户头像,可选 
          }

          如有错误,返回如下格式:

          {
             error: "err msg"
          }
          上一篇
          附录
          下一篇
          相关协议