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

第一步获得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');
第四步获得用户信息: 通过获取当前用户上下文信息接口获得用户信息。
描述: 此接口都需要通过云之家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中) |
场景:假如某客户的自有系统(比如OA)或者第三方系统都以轻应用集成到了云之家,如何实现云之家用户打开轻应用单点登录到客户的系统?
实现步骤
在云之家移动端APP,云之家WEB端,云之家桌面端打开轻应用时云之家会传递ticket参数给轻应用(把ticket参数追加到轻应用对应的url后面)。
"轻应用测试"访问地址配置如下图:

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