鉴权方式

更新时间: 2024/04/02 17:59:25

公共参数

参数名称 类型 是否必传 说明
X-CR-SecretId String 每个企业的唯一标识 secretId
X-CR-Timestamp Long 当前请求的时间戳,单位为秒
如果与服务器时间相差超过5分钟,会引起签名过期错误。
X-CR-Signature String 签名。加密算法: SHA256,值为 sha256( secretId + '&' + Timestamp + '&' + secretKey)
X-CR-RequestId String 每次请求API的ID,可用UUID

说明:

  • 以上参数统一放到 HTTP Header 请求头部中
  • secretId 用于唯一标识,指明是哪个企业;secretKey 密钥,用于生成签名。
  • 每次请求都要生成一次签名

使用示例

从会议管理后台获取到如下内容:

选项
secretId 6mioUaDlFdf3Bagt3s
secretKey t02npiEZn82WqRl26Nfb0stD89bZkwTT

程序生成当前时间戳 timestamp = 1622098479,

计算签名 signature = sha256( secretId + '&' + Timestamp + '&' + secretKey)

​ = edda74671f313bc7c081bf6e11c8da9ebe73224e4aadba96f6ae2c6ba4550f25。

生成签名的代码示例如下:

package com.cloudroom.api.core;

import com.google.common.hash.Hashing;

import java.nio.charset.StandardCharsets;
import java.util.Calendar;

public class SignTest {
    public static void main(String[] args) {
        String secretId = "6mioUaDlFdf3Bagt3s";
        String secretKey = "t02npiEZn82WqRl26Nfb0stD89bZkwTT";
        long timestamp = Calendar.getInstance().getTimeInMillis() / 1000;
        System.out.println(timestamp);

        String signature = Hashing.sha256()
                .hashString(secretId + '&' + timestamp + '&' + secretKey, StandardCharsets.UTF_8)
                .toString();
        System.out.println(signature);

    }
}

调用创建会议接口,在HTTP Header 请求头部中填入鉴权信息,如图所示:

在body中填入业务参数,如下图所示:

调用成功后,会获取到刚创建的会议号,用于后续业务处理。

常见问题

签名过期

如果接口返回如图结果

说明HTTP Header 请求头部参数 X-CR-Timestamp 的值与服务器时间相差超过5分钟。

需要重新获取当前时间戳,重新生成签名。

修改参数 X-CR-Timestamp 和 X-CR-Signature 的值。

签名无效

如果接口返回如图结果

说明HTTP Header 请求头部参数 X-CR-Signature 的值不对

请按照上文的签名生成规则,生成正确的值。

其他鉴权的错误信息,请参考鉴权错误码