TIP
# 2.1 使用秘钥授权登录勤策
# 2.1.1 获取接入AccessToken
接口说明:用于第三方系统从外部直接登录勤策系统时获取AccessToken信息,此AccessToken仅用于秘钥授权接入使用和oAuth2接口不可混用。
请求方式: POST(HTTPS)
请求地址: https://sso.qince.com/openplat/getTokenFromThirdparty.do
参数说明:
参数 | 类型 | 是否必传 | 说明 |
---|---|---|---|
tenantId | long | 是 | 企业id |
data | text | 是 | 加密数据体,将数据体原文使用企业参数"OA登录秘钥"进行AES加密DataEncryptUtil.encryptText(DATA, OA_KEY, NONCE, TIMESTAMP) ,加密方法参考 2.1.4 加密方法部分 |
nonce | text | 是 | 随机字符串 |
timestamp | long | 是 | 时间戳 |
请求体加密后示例:
{
"tenantId":4802948302940558496,
"data":"P3EENkBmTTJ2OxZxl+/BTWED4D/GZNQPL6Q6pNqmDkcsCCa/ia/R5mQwWdDsQTa7PF5IguXVNwhrEnotDaT5/B8c/XLHiS9sUPfFRp5vfyWwPKbjzVLJ+j+3SfypAQiI5S8nDhUUHVG1Qy/wYV9MvhtlI0/kgXLsLr8NbFedyPdZzlKEtPZAZCawQqq1Llu0",
"nonce":"1234",
"timestamp":20220708142900
}
data原文格式说明:
参数 | 类型 | 是否必传 | 说明 |
---|---|---|---|
sourceType | text | 是 | 登录方式 WEB-电脑端 CLIENT-手机APP端 |
redirectUrl | text | 否 | 登录成功后跳转地址,需要使用勤策URL链接相对地址。注意URL 中包含特殊字符(如空格、中文)时需要做URIEncode编码。 |
tenantId | long | 是 | 企业ID |
userId | long | 否 | 勤策员工唯一ID和thirdId二者必传其中一个 |
thirdId | text | 否 | 第三方员工唯一ID和userId二者必传其中一个 |
data原文示例:
{
"sourceType": "WEB",
"redirectUrl": "/test.html?title=%E8%AF%A6%E6%83%85",
"tenantId": 4802948302940558496,
"thirdId": "123456"
}
响应参数
参数 | 类型 | 说明 |
---|---|---|
code | text | 响应码 1-成功 0-失败 |
access_token | text | SSO请求访问令牌 |
expire_in | long | SSO请求访问令牌过期时间有效期(受企业参数“OA登录链接有效期”控制),单位秒。 默认604800秒 |
message | text | 响应信息 |
响应示例:
{
"code": 1,
"data": {
"access_token": "qc4802948302940558496ak5XLynGNh3e7a04a1b6d54fd8bf0451db8958c823",
"expire_in": 86400
},
"message": "ok"
}
# 2.1.2 用AccessToken登录跳转到勤策WEB端
接口说明:用于第三方系统直接使用AccessToken从外部打开勤策系统的功能界面的接口。
请求方式: GET(HTTPS)
请求地址: https://sso.qince.com/openplat/redirectFromThirdparty.do?accessToken=<accessToken>
请求体示例:
https://sso.qince.com/openplat/redirectFromThirdparty.do?accessToken=qc4802948302940558496ak5XLynGNh3e7a04a1b6d54fd8bf0451db8958c823
参数说明:
参数 | 类型 | 是否必传 | 说明 |
---|---|---|---|
accessToken | text | 是 | 请求跳转令牌 2.1.1获取AccessToken |
# 2.1.3 用AccessToken登录勤策APP端
接口说明:用于第三方APP可以使用URL Schemes唤起勤策APP,第三方APP在手机端直接唤起勤策APP时需要携带AccessToken参数以便单点登录到勤策系统主界面。
# 2.1.3.1 安卓客户端唤起
请求地址: <Schema>://<HOST>?access_token=<accessToken>
参数 | 类型 | 是否必传 | 说明 |
---|---|---|---|
Schema | text | 是 | 应用Schema,由勤策厂商提供 |
HOST | text | 是 | 应用HOST,由勤策厂商提供 |
accessToken | text | 是 | 登录授权AccessToken信息, 2.1.1获取AccessToken |
示例:
qince://qince?access_token=qc4802948302940558496ak5XLynGNh3e7a04a1b6d54fd8bf0451db8958c823
# 2.1.3.2 苹果客户端唤起
请求地址: <Schema>://access_token=<accessToken>
参数 | 类型 | 是否必传 | 说明 |
---|---|---|---|
Schema | text | 是 | 应用Schema,由勤策厂商提供 |
accessToken | text | 是 | 登录授权AccessToken信息,2.1.1获取AccessToken |
示例:
qince://access_token=qc4802948302940558496ak5XLynGNh3e7a04a1b6d54fd8bf0451db8958c823
# 2.1.4 生成加密数据方法
接口说明:用于第三方系统获取的AccessToken信息时获取加密数据的方法。需要传递4个参数text为加密文本信息,nonce随机字符串,
参数 | 类型 | 是否必传 | 说明 |
---|---|---|---|
text | text | 是 | 待加密的文本信息 |
oaKey | text | 是 | 企业OA登录秘钥,在企业参数中设置 |
nonce | text | 是 | 随机字符串 |
timestamp | long | 是 | 时间戳 |
加密算法:
加密算法工具类需要下载JAVA开发工具包
# Java开发工具包
项目 | 名称 | 大小 |
---|---|---|
JAVA开发工具包 | openapi_tools-1.2.1.jar (opens new window) | 37 KB |
JSONObject object = new JSONObject();
object.put("sourceType", "WEB");
object.put("redirectUrl", "/portal/ssoHome.do");
object.put("tenantId", "4802948302940558496");
object.put("userId", "9119168303823765016");
String encrypt = DataEncryptUtil.encryptText(object.toJSONString(), oaKey, nonce, timestamp);
← 1.6 最佳实现示例 2.2 最佳实现示例 →