提交 74beaf5f 编写于 作者: 李光春's avatar 李光春

- 优化标准Api控制器基类签名

上级 5c3afa48
...@@ -128,7 +128,7 @@ class ApiController extends stdClass ...@@ -128,7 +128,7 @@ class ApiController extends stdClass
$arr = request()->post(); $arr = request()->post();
$timestamp = request()->get('timestamp', 0); $timestamp = request()->get('timestamp', 0);
// 判断是否有时间 // 判断是否有时间
if (empty($timestamp)) $this->error('数据不匹配', 666); if (empty($timestamp)) $this->error('数据异常!', 666);
$arr['timestamp'] = $timestamp; $arr['timestamp'] = $timestamp;
// 删除sign // 删除sign
foreach ($arr as $k => $v) if ('sign' == $k) unset($arr[$k]); foreach ($arr as $k => $v) if ('sign' == $k) unset($arr[$k]);
...@@ -136,14 +136,12 @@ class ApiController extends stdClass ...@@ -136,14 +136,12 @@ class ApiController extends stdClass
$arr = $this->argSort($arr, $name); $arr = $this->argSort($arr, $name);
// 服务器签名对比 // 服务器签名对比
$sign = $this->md5Sign($arr); $sign = $this->md5Sign($arr);
if ($sign != request()->header('sign', '')) $this->error('数据不匹配', 666); if ($sign != request()->header('sign', '')) $this->error('验证不匹配!', 666);
// 计算时间差
$time = time() - $timestamp;
// 判断是不是小于服务器时间 // 判断是不是小于服务器时间
if ($time < 0) $this->error('数据不匹配', 666); $before = strtotime('-2minute');
// 判断是不是超过时间 $rear = strtotime('+2minute');
if ($time > 200) $this->error('请重新尝试!'); if ($timestamp <= $rear && $timestamp >= $before) return true;
return true; else $this->error('已超时,请重新尝试!');
} }
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册