<?php namespace app\api\controller; use app\common\controller\Api; use fast\Random; /** * Token接口 * @ApiWeigh(2) */ class Token extends Api { protected $noNeedLogin = []; protected $noNeedRight = '*'; /** * @ApiWeigh (99) * @ApiTitle (检测Token是否过期) * @ApiSummary (检测Token是否过期) * @ApiMethod (GET) * @ApiHeaders (name="token", type="string", required=true, description="请求的Token") * @ApiReturn({ "code": 1, "msg": "", "time": "1621402970", "data": { "token": "545eed64-39c4-437e-8285-ac94c03e4921", //token "expires_in": 2591951 //剩余有效时间 } }) */ public function check() { $token = $this->auth->getToken(); $tokenInfo = \app\common\library\Token::get($token); $this->success('', ['token' => $tokenInfo['token'], 'expires_in' => $tokenInfo['expires_in']]); } /** * @ApiWeigh (97) * @ApiTitle (刷新Token) * @ApiSummary (刷新Token) * @ApiMethod (GET) * @ApiHeaders (name="token", type="string", required=true, description="请求的Token") * @ApiReturn({ "code": 1, "msg": "", "time": "1621403556", "data": { "token": "175c6d84-42af-4c59-bce0-ad8a66eb5f3f", //token "expires_in": 2592000 //剩余有效时间 } }) */ public function refresh() { //删除源Token $token = $this->auth->getToken(); \app\common\library\Token::delete($token); //创建新Token $token = Random::uuid(); \app\common\library\Token::set($token, $this->auth->id, 2592000); $tokenInfo = \app\common\library\Token::get($token); $this->success('', ['token' => $tokenInfo['token'], 'expires_in' => $tokenInfo['expires_in']]); } }