From 898a3aa8d5151bdf8476dc826f8835d3a8f88177 Mon Sep 17 00:00:00 2001 From: Ufec Date: Wed, 24 Jun 2020 16:51:09 +0800 Subject: [PATCH] =?UTF-8?q?:bug:BuildToken=E7=9B=B8=E5=85=B3=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/BuildToken.php | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/application/api/controller/BuildToken.php b/application/api/controller/BuildToken.php index 595a2e6..e26cd92 100644 --- a/application/api/controller/BuildToken.php +++ b/application/api/controller/BuildToken.php @@ -27,7 +27,6 @@ class BuildToken extends Base { if (empty($appInfo)) { return $this->buildFailed(ReturnCode::INVALID, '应用ID非法'); } - $signature = $param['signature']; unset($param['signature']); $sign = $this->getAuthToken($appInfo['app_secret'], $param); @@ -37,17 +36,18 @@ class BuildToken extends Base { } $expires = config('apiadmin.ACCESS_TOKEN_TIME_OUT'); $accessToken = cache('AccessToken:' . $param['device_id']); + // 有当前应用的token缓存就直接返回缓存中的token if ($accessToken) { - cache('AccessToken:' . $accessToken, null); - cache('AccessToken:' . $param['device_id'], null); + $return['access_token'] = $accessToken; + $return['expires_in'] = $expires; + }else{ + $accessToken = $this->buildAccessToken($appInfo['app_id'], $appInfo['app_secret']); + $appInfo['device_id'] = $param['device_id']; + cache('AccessToken:' . $accessToken, $appInfo, $expires); + cache('AppId:' . $param['app_id'], $accessToken, $expires); + $return['access_token'] = $accessToken; + $return['expires_in'] = $expires; } - $accessToken = $this->buildAccessToken($appInfo['app_id'], $appInfo['app_secret']); - $appInfo['device_id'] = $param['device_id']; - cache('AccessToken:' . $accessToken, $appInfo, $expires); - cache('AccessToken:' . $param['device_id'], $accessToken, $expires); - $return['access_token'] = $accessToken; - $return['expires_in'] = $expires; - return $this->buildSuccess($return); } @@ -62,10 +62,11 @@ class BuildToken extends Base { return ''; } else { unset($data['APP_CONF_DETAIL'], $data['API_CONF_DETAIL']); + // 去除当前路由防止sign验签失败 + array_shift($data); $preArr = array_merge($data, ['app_secret' => $appSecret]); ksort($preArr); $preStr = http_build_query($preArr); - return md5($preStr); } }