PHP接口设置10分钟失效
1、测试:
http://test:8111/v1/get/info?uid=1&time=1534144679&key=449952082a089cf7424119740e378063
2、返回:
{"code":1,"msg":"","data":{"name":"abc","age":18}}
3、代码:
/**
* @todo 根据UID返回用户信息
* @url /v2/get/info
* @type GET
* @param int uid 用户ID
* @param int time 当前时间戳
* @param int key 秘钥:md5( $uid + $time + 'HELLOWORLD')
*/
public function infoAction(){
$default_key = 'HELLOWORLD'; //定义秘钥
/**GET接收参数*/
$uid = isset($_GET['uid']) ? $_GET['uid'] : '';
$key = isset($_GET['key']) ? $_GET['key'] : '';
$time = isset($_GET['time']) ? $_GET['time'] : '';
/**给返回参数默认值*/
$code = -1;
$msg = '';
$data = [];
if(!$uid || !$key || !$time){
$msg = '参数缺失!';
}else{
if($time - time() > 600 ){ //设置10分钟失效
$msg = '接口已失效!';
}else{
if($key == md5($uid.$time.$default_key)){
$code = 1;
$data = $this->getuserinfo($uid);
}else{
$msg = '秘钥错误!';
}
}
}
$result = [ //返回数据统一处理
'code' => $code,
'msg' => $msg,
'data' => $data
];
die(json_encode($result)); //json返回
}
/**
* @todo 模拟数据库数据返回
* @param unknown $uid
* @return string[]|number[]
*/
private function getuserinfo($uid){
$data = [];
$userArr = [
1 => ['name'=>'abc', 'age'=>18],
2 => ['name'=>'def', 'age'=>19],
3 => ['name'=>'ghi', 'age'=>20],
];
if(array_key_exists($uid, $userArr)){
$data = $userArr[$uid];
}
return $data;
}