Token.php
2.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
namespace addons\jiangxingapi\controller;
use app\common\controller\Api;
use think\addons\Controller;
use think\Db;
use think\exception\ErrorException;
class Token extends Api
{
protected $noNeedLogin = ['*'];
protected $noNeedRight = ['*'];
/**
* 获取token
*/
public function gettoken(){
$appkey = $this->request->param("appkey");
$appsecret = $this->request->param("appsecret");
//判断参数
if(empty($appkey)){
$this->error("appkey不能为空");
}
if(empty($appsecret)){
$this->error("appsecret不能为空");
}
//查询token
$res=Db::name("jxapi_jxtoken")
->where("appkey",$appkey)
->where("appsecret",$appsecret)
->find();
if(empty($res)){
$this->error("appkey或appsecret错误");
}
//判断token是否过期
if($res['expiretime']<time()){
//过期重新生成
$res=$this->createtoken($res["id"],$appkey,$appsecret);
//重新获取
$res=Db::name("jxapi_jxtoken")
->where("id",$res)
->find();
}
$data=[
'appkey'=>$appkey,
'appsecret'=>$appsecret,
'token'=>$res['token']
];
$this->success("请求成功",$data);
}
/**
* 创建token
* @return void
*/
public function createtoken($id,$appkey,$appsecret){
$time=time();
// $appkey=rand(42323456,99999999);
// $appsecret=md5($appkey.$time);
$token=md5($appkey.$appsecret.$time);
$expiretime = strtotime(date('Y-m-d', $time) . ' +1 month');
$data=[
"appkey"=>$appkey,
"appsecret"=>$appsecret,
"token"=>$token,
"createtime"=>$time,
"expiretime"=>$expiretime,
];
$res=Db::name("jxapi_jxtoken")->where("id",$id)->update($data);
return $res;
}
}