From d79706481a5828ec5010541efc4becb0bdfc9aa0 Mon Sep 17 00:00:00 2001 From: vilson <545522390@qq.com> Date: Tue, 3 Sep 2019 16:06:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=A0=E6=B3=95=E6=AD=A3?= =?UTF-8?q?=E5=B8=B8=E9=82=80=E8=AF=B7=E6=88=90=E5=91=98=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: vilson <545522390@qq.com> --- application/project/middleware/Auth.php | 30 +++++++++++++++---------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/application/project/middleware/Auth.php b/application/project/middleware/Auth.php index 1e59e02..eb831c8 100644 --- a/application/project/middleware/Auth.php +++ b/application/project/middleware/Auth.php @@ -37,29 +37,35 @@ class Auth if ($currentOrganizationCode) { setCurrentOrganizationCode($currentOrganizationCode); } + $authorization = $request->header('Authorization'); + $logined = false; + $encodeData = ''; + if ($authorization) { + $accessToken = explode(' ', $authorization)[1]; + $encodeData = JwtService::decodeToken($accessToken); + if (!isError($encodeData)) { + $member = Cache::get('member:info:' . $encodeData->data->code); + if ($member) { + setCurrentMember($member); + $logined = true; + } + } + } // 登录状态检查 if (!empty($access['is_login'])) { - $authorization = $request->header('Authorization'); - $accessToken = ''; - if ($authorization) { - $accessToken = explode(' ', $authorization)[1]; - } - $data = JwtService::decodeToken($accessToken); - if (isError($data)) { + if (isError($encodeData)) { //TODO 启用refreshToken - if ($data['errno'] == 3) { + if ($encodeData['errno'] == 3) { $msg = ['code' => 401, 'msg' => 'accessToken过期']; return json($msg); } $msg = ['code' => 401, 'msg' => '登录超时,请重新登录']; return json($msg); } - $member = Cache::get('member:info:' . $data->data->code); - if (!$member) { + if (!$logined) { $msg = ['code' => 401, 'msg' => '登录超时,请重新登录']; return json($msg); } - setCurrentMember($member); } // 访问权限检查 if (!empty($access['is_auth']) && !auth($node, 'project')) { @@ -74,7 +80,7 @@ class Auth foreach ($config as $itemKey => $item) { sysconf($itemKey, $item); } - }else{ + } else { sysconf($key, $config); } }