1. 创建接口时,为增强安全性,允许用户添加 App ID + App Key 进行鉴权,如果在接口编辑页面勾选了请求加签,需指定 appId 和 appKey。
用户可以在 智能客服 > 机器人设置 > 鉴权管理页面 设置appId 和 appKey,该鉴权针对每一个机器人,不是企业主号级别的。
2. 对话机器人在调用对应的接口时,会在请求 Headers 中添加如下接口鉴权相关字段:
3. 对于需要鉴权的接口,收到请求后,需要检查以下几点:
(1)从Headers 取出 YXW-Timestamp,YXW-AppId,YXW-Signature 三个字段,若取不到,则直接报鉴权失败(HTTP错误码401)。
(2)校验时间戳,YXW-Timestamp 与当前时间差距不能超过5min(即300s),若超过,则签名过期,报错鉴权失败(HTTP错误码401)。
(3)校验appId,YXW-AppId 字段必须是接口服务认证过的 appId,否则报鉴权失败(HTTP错误码401)。
(4)校验签名,使用算法 HMAC_SHA256(str(timestamp) + '-' + appId, appKey) 计算签名,并与YXW-Signature 字段进行比对,相同则鉴权通过,否则报鉴权失败(HTTP错误码401)。
其中: timestamp 对应YXW-Timestamp,appId对应YXW-AppId,appKey为接口服务appId对应的密钥。