接口加密
目录
- 启动加密
- 基本说明
- Get请求
- Post请求
- Put/Delete请求
注意默认是关闭加密,可自行开启
启动加密
具体查看文件 api/config/params.php
// 签名验证默认关闭验证,如果开启需了解签名生成及验证
'user.httpSignValidity' => false,
// 签名授权公钥秘钥
'user.httpSignAccount' => [
'doormen' => 'e3de3825cfbf',
],
基本说明
Url测试访问地址:
// 注意系统默认关闭了该测试控制器 请去 api 的 main 文件内开启 sign-secret-key 路由
http://www.example.com/api/sign-secret-key
签名sign的生成规则:
将需要参与签名的参数按照参数名字符串顺序升序排列,并用请求查询串的形式依次拼接。
格式为:p1=v1&p2=v2&p3=v3
将以上拼好的结果后面直接加上appSecret,形成待签名字符串
对待签名字符串按照UTF-8编码做MD5摘要运算,结果转化为32位小写签名摘要。
固定参数
参数名 | 参数类型 | 必填 | 默认 | 说明 | 备注 |
---|---|---|---|---|---|
appId | string | 是 | 无 | 授权公钥 | 后台给予,文档测试值:doormen |
nonceStr | string | 是 | 无 | 随机数 | 自行生成 默认8位,文档测试值:z7cl7WR9 |
time | int | 是 | 无 | 时间戳 | 自行生成 10位,注意和当前校验时间不能大于60秒,文档测试值:1539846942 |
sign | string | 是 | 无 | 签名 | 加密后出现 |
不用传参但是需要参与加密
参数名 | 参数类型 | 必填 | 默认 | 说明 | 备注 |
---|---|---|---|---|---|
appSecret | string | 是 | 无 | 授权秘钥 | 后台给与,文档测试值:e3de3825cfbf |
Get 请求
1、例如以下的接口请求方式
请求地址(Get)
/v1/site/send
参数
参数名 | 参数类型 | 必填 | 默认 | 说明 | 备注 |
---|---|---|---|---|---|
mobile | string | 是 | 无 | 账号 | 测试值为:15888888888 |
请求时候测试拼接字符串为:
Get请求所有的参数都是在url里面所以mobile加入计算
appId=doormen&mobile=15888888888&nonceStr=z7cl7WR9&time=1539846942e3de3825cfbf
// php版加密方式
$sign = strtolower(md5('上面的字符串'));
// 测试生成的sign:
94c897114201d7f9b4adf03b5e3afc8f
// 查看最后生成的Url:
appId=doormen&mobile=15888888888&nonceStr=z7cl7WR9&time=1539846942&sign=94c897114201d7f9b4adf03b5e3afc8f
注意:如果是请求详情例如url为 /v1/member/info/1,你的参与加密参数要额外带上一个 id为1的参数 比如
// 原因见 Put/Delete 请求说明 一个道理
appId=doormen&id=1&mobile=15888888888&nonceStr=z7cl7WR9&time=1539846942e3de3825cfbf
Post请求
1、例如以下的接口请求方式
请求地址(Post)
/v1/site/login
参数
参数名 | 参数类型 | 必填 | 默认 | 说明 | 备注 |
---|---|---|---|---|---|
username | string | 是 | 无 | 账号 | |
password | string | 是 | 无 | 密码 |
2、上面的参数无需加密,只需要加密基本的参数
// 默认参数
appId=doormen&nonceStr=z7cl7WR9&time=1539846942e3de3825cfbf
// php版加密方式
$sign = strtolower(md5('上面的字符串'));
// 测试生成的sign:
94c897114201d7f9b4adf03b5e3afc8f
// 查看最后生成的Url:
/v1/site/login?appId=doormen&nonceStr=z7cl7WR9&time=1539846942&sign=94c897114201d7f9b4adf03b5e3afc8f
Put/Delete请求
1、例如以下的接口请求方式
请求地址(Put/Delete)
/v1/member/member/[ID]
参数
参数名 | 参数类型 | 必填 | 默认 | 说明 | 备注 |
---|---|---|---|---|---|
nickname | string | 是 | 无 | 昵称 |
2、上面的参数无需加密,只需要加密基本的参数
但是由于restful的特殊机制其实以上url省略了一个id参数,所以我们加密的时候要附带一个id参数
// 默认参数
appId=doormen&id=1&nonceStr=z7cl7WR9&time=1539846942e3de3825cfbf
// php版加密方式
$sign = strtolower(md5('上面的字符串'));
// 测试生成的sign:
94c897114201d7f9b4adf03b5e3afc8f
// 查看最后生成的Url:
/v1/member/member/1?appId=doormen&nonceStr=z7cl7WR9&time=1539846942&sign=94c897114201d7f9b4adf03b5e3afc8f
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。