更新日期:     浏览次数:

1. 云之家轻应用认证用户身份流程

轻应用用来获取云之家的人员信息,实现云之家用户免登录轻应用,轻应用获取到的是云之家的账号信息。本篇介绍了用户在云之家打开轻应用时,轻应用如何获取用户身份信息。

1.1. 流程图

轻应用在云之家获取用户信息的流程如下图: 单点登录流程

1.2. 步骤

第一步获得appid和appsecret: 参见获得appid和appsecret

第二步获得access_token: 通过云之家OAuth2.0授权协议调用获取accessToken接口获得accessToken

第三步获得ticket: 在云之家APP上访问轻应用时,云之家APP会传递ticket参数给轻应用(把ticket参数追加到轻应用对应的url中)。 轻应用可以从请求参数中获取。

JAVA代码:

String ticket = request.getParameter("ticket");

js代码:

//获取url中的参数
function getUrlParam(name) {
     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
     var r = window.location.search.substr(1).match(reg);  //匹配目标参数
     if (r != null) return unescape(r[2]); return null; //返回参数值
}

var ticket = getUrlParam('ticket');

第四步获得用户信息: 通过获取当前用户上下文信息接口获得用户信息。

1.3. 获取当前用户上下文信息

描述: 此接口都需要通过云之家OAuth2.0授权协议进行授权,授权级别为app级。根据客户端ticket、企业自建应用appId获取当前用户上下文信息;

请求地址: https://www.yunzhijia.com/gateway/ticket/user/acquirecontext?accessToken=xxxxxx

请求方法: POST

参数类型: Content-Type: application/json

输入参数:

字段 类型 是否必填 说明
appid String 轻应用id
ticket String 云之家APP会传递ticket参数给轻应用(把ticket参数追加到轻应用对应的url中),
时效为1小时,不建议开发者缓存使用

json示例:

{
    "appid":"xxxxxx",
    "ticket":"xxxxxx"
}

输出结果:

{
    "errorCode": 0,
    "data": {
        "appid": "500041933",
        "xtid": "5a41b292e4b058cf3d0cf312",
        "oid": "5a41b292e4b058cf3d0cf314",
        "eid": "10603457",
        "username": "成建蒋",
        "userid": "5a41af0ae4b0820e92cd9868",
        "uid": "101341872",
        "tid": "10603457",
        "jobNo":"12312",
        "networkid": "58df7e16e4b053f44063edca",
        "deviceId": "1517361645",
        "openid": "5a41b292e4b058cf3d0cf314",
        "ticket": null
    },
    "success": true,
    "error": null
}
  • 参数说明
字段 类型 说明
appid String 轻应用id
xtid String 团队id,仅供金蝶内部使用
oid String 团队用户id,仅供金蝶内部使用
eid String 团队id
username String 用户姓名
userid String 云之家用户id
uid String 云平台用户id,仅供金蝶内部使用
tid String 云平台工作圈id
jobNo String 工号
networkid String 工作圈id
deviceId String 设备id
openid String 团队用户id
ticket String 云之家APP会传递ticket参数给轻应用(把ticket参数追加到轻应用对应的url中)

1.4. 应用场景

场景:假如某客户的自有系统(比如OA)或者第三方系统都以轻应用集成到了云之家,如何实现云之家用户打开轻应用单点登录到客户的系统?

实现步骤

  1. 通过云之家获取当前用户上下文信息拿到云之家用户信息;
  2. 客户拿到云之家用户信息后,与自身系统的账号信息做一一映射绑定,从而实现单点登录。

2. FAQ

2.1. 如何获取ticket?

在云之家移动端APP,云之家WEB端,云之家桌面端打开轻应用时云之家会传递ticket参数给轻应用(把ticket参数追加到轻应用对应的url后面)。

"轻应用测试"访问地址配置如下图: web端抓包ticket

web端工作台打开轻应用"轻应用测试",通过抓包可以看到ticket,如下图所示: web端抓包ticket

results matching ""

    No results matching ""