Android接口签名规则,签名规则

签名规则

API 调用签名规则¶

本文档中所有请求融云服务端 API 接口的请求均使用此规则校验,以下不再重复说明。

每次请求 API 接口时,均需要提供 4 个 HTTP Request Header,具体如下:

名称

类型

说明

RC-App-Key

String

开发者平台分配的 App Key。

RC-Nonce

String

随机数,无长度限制。

RC-Timestamp

String

时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到当前时间(北京时间)的毫秒数。(请严格参照此执行,服务器端会校验此信息)

RC-Signature

String

数据签名。

RC-Signature (数据签名)计算方法:将系统分配的 App Secret、RC-Nonce (随机数)、RC-Timestamp (时间戳)三个字符串按先后顺序拼接成一个字符串并进行 SHA1 哈希计算。如果调用的数据签名验证失败,接口调用会返回 HTTP 状态码 401。其他状态码请参见状态码表。

签名生成代码示例¶

PHP 语言的代码示例:

// 重置随机数种子。

srand((double)microtime()*1000000);

$appSecret = 'Y1W2MeFwwwRxa0'; // 开发者平台分配的 App Secret。

$nonce = rand(); // 获取随机数。

$timestamp = time()*1000; // 获取时间戳(毫秒)。

$signature = sha1($appSecret.$nonce.$timestamp);

HTTP 请求示例:

POST /user/getToken.json HTTP/1.1

Host: api.cn.ronghub.com

RC-App-Key: uwd1c0sxdlx2

RC-Nonce: 14314

RC-Timestamp: 1408710653491

RC-Signature: 890b422b75c1c5cb706e4f7921df1d94e69c17f4

Content-Type: application/x-www-form-urlencoded

Content-Length: 78

userId=jlk456j5&name=Ironman&portraitUri=http%3A%2F%2Fabc.com%2Fmyportrait.jpg

API 接收签名规则¶

融云服务器向应用服务器推送数据(调用应用服务器接口)时会添加 3 个 GET 请求参数(在 URL 上添加的参数),具体如下:

名称

类型

说明

rc-nonce

String

随机数,无长度限制。

rc-timestamp

String

时间戳,从1970年1月1日0点0分0秒开始到现在的秒数。

rc-signature

String

数据签名。

RC-Signature (数据签名)计算方法:将系统分配的 App Secret、RC-Nonce (随机数)、RC-Timestamp (时间戳)三个字符串按先后顺序拼接成一个字符串并进行 SHA1 哈希计算。

签名校验代码示例¶

PHP 语言的代码示例:

$appSecret = 'Y1W2MeFwwwRxa0'; // 开发者平台分配的 App Secret。

$nonce = $_GET['rc-nonce']; // 获取随机数。

$timestamp = $_GET['rc-timestamp']; // 获取时间戳。

$signature = $_GET['rc-signature']; // 获取数据签名。

$local_signature = sha1($appSecret.$nonce.$timestamp); // 生成本地签名。

if(strcmp($signature, $local_signature)===0){

// TODO: 此处添加业务逻辑。

echo 'OK';

} else {

echo 'Error';

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值