logo
即时通讯
当前页

检验说明


为提高数据安全性,建议开发者在收到 ZEGO 服务端发出的回调时,进行本地签名计算,并与 signature 进行对比,判断该请求是否合法。

校验的使用流程如下:

1

对参数进行排序

callbacksecrettimestampnonce 三个参数按照字典序进行排序

2

计算 SHA1

将排序后的 callbacksecrettimestampnonce 拼接成一个字符串并进行sha1计算

3

校验 signature

将计算后的哈希字符串与 signature 进行校验对比,如果相同则标识该请求来源于 ZEGO

参数说明如下:

参数说明
callbacksecret服务端校验密钥。在 ZEGO 控制台 注册项目时生成,可在 “控制台 > 项目配置 > 项目信息 > 配置信息” 中查看。
timestampUnix 时间戳。
nonce随机数。

以下示例代码用于生成和检验 signature。

// 从请求参数中获取到 signature, timestamp, nonce
$signature = $_POST["signature"];
$timestamp = $_POST["timestamp"];
$nonce = $_POST["nonce"];

$secret = callbacksecret;// 控制台获取的 callbacksecret
$tmpArr = array($secret, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
    return true;
} else {
    return false;
}

输出示例如下:

PHP 示例
$nonce = 123412;
$timestamp = 1470820198;
$secret = 'secret';
// 三个参数经过排序后的顺序为:nonce、timestamp、secret
// 排序拼接后需要加密的原始串为:1234121470820198secret
// 哈希运算的结果为:5bd59fd62953a8059fb7eaba95720f66d19e4517

Previous

呼叫超时

Next

全局返回码

当前页

返回到顶部