# 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);