# 2.2. 实现外部秘钥登录勤策

# 2.2.1. 沿路径找到菜单 “系统管理” - “企业设置” - “企业参数”,打开"内置功能"页签下"安全设置",找到并设置“OA登录密钥”。

avatar
注意:设置密钥为32位以内随机数字、字母或下划线。

# 2.2.2. 打开菜单"员工管理"下"第三方系统对接",打开“员工映射列表”

avatar

其中员工ID对应2.1.1 获取接入AccessToken (opens new window)接口中userId来源编码对应接口中thirdId

avatar

# 2.2.3. 在员工映射列表中,点击"编辑",可以设置系统员工对应的来源编码。

avatar

注意:来源编码用于绑定外部系统员工,必须唯一。 如果系统中员工是通过OpenAPI (opens new window)创建的,则OpenAPI接口中的emp_id对应2.1.1 获取接入AccessToken (opens new window)接口中的thirdId

# 2.2.5. 准备登录原始数据,并使用加密算法将数据体加密。

测试场景:准备以test用户登录WEB端直接打开test.html页面,如果test用户来源编码设置为123456,数据原文如下:

{
    "sourceType": "WEB",
    "redirectUrl": "/test.html",
    "tenantId": 4802948302940558496,
    "thirdId": "123456"
}

使用示例中加密工具类DataEncryptUtil.encryptText(JSON_DATA, OA_KEY, nonce, timestamp)进行加密,示例数据如下:

数据体原文字符串JSON_DATA={"sourceType": "WEB","redirectUrl":"/test.html","tenantId":4802948302940558496,"thirdId": "123456"}

OA登录秘钥OA_KEY=XXXXXXX

随机字符串nonce=1234

时间戳timestamp=1725413592313

生成加密后数据示例如下:

  P3EENkBmTTJ2OxZxl+/BTWED4D/GZNQPL6Q6pNqmDkcsCCa/ia/R5mQwWdDsQTa7PF5IguXVNwhrEnotDaT5/B8c/XLHiS9sUPfFRp5vfyWwPKbjzVLJ+j+3SfypAQiI5S8nDhUUHVG1Qy/wYV9MvhtlI0/kgXLsLr8NbFedyPdZzlKEtPZAZCawQqq1Llu0

# 2.2.6. 准备请求获取登录授权AccessToken,请求参数保持和加密中参数一致

请求:
POST https://cloud.region2.qince.com/openplat/getTokenFromThirdparty.do
{
	"tenantId":4802948302940558496,
    "data":"P3EENkBmTTJ2OxZxl+/BTWED4D/GZNQPL6Q6pNqmDkcsCCa/ia/R5mQwWdDsQTa7PF5IguXVNwhrEnotDaT5/B8c/XLHiS9sUPfFRp5vfyWwPKbjzVLJ+j+3SfypAQiI5S8nDhUUHVG1Qy/wYV9MvhtlI0/kgXLsLr8NbFedyPdZzlKEtPZAZCawQqq1Llu0",
	"nonce":"1234",
	"timestamp":1725413592313
}
响应信息:
{
    "code": 1,
    "data": {
        "access_token": "qc4802948302940558496ak5XLynGNh3e7a04a1b6d54fd8bf0451db8958c823",
        "expire_in": 86400
    },
    "message": "ok"
}

# 2.2.7. 准备请求打开WEB页面

通过浏览器打开跳转地址:

Location: https://cloud.region2.qince.com/openplat/redirectFromThirdparty.do?accessToken=qc4802948302940558496ak5XLynGNh3e7a04a1b6d54fd8bf0451db8958c823