diff --git a/extend/base/admin/controller/LoginBase.php b/extend/base/admin/controller/LoginBase.php index 09daee1..88ff7da 100644 --- a/extend/base/admin/controller/LoginBase.php +++ b/extend/base/admin/controller/LoginBase.php @@ -100,6 +100,10 @@ class LoginBase extends AdminController public function out() { session('admin', null); + $token = $this->readHeaderToken(); + if ($token) { + Cache::delete($token); + } $this->success('退出登录成功'); } diff --git a/extend/base/common/controller/AdminControllerBase.php b/extend/base/common/controller/AdminControllerBase.php index c6d09c4..787ff40 100644 --- a/extend/base/common/controller/AdminControllerBase.php +++ b/extend/base/common/controller/AdminControllerBase.php @@ -463,9 +463,8 @@ class AdminControllerBase extends BaseController { $adminConfig = config('admin'); - $header_authorization = $this->request->header('Authorization'); - if (!empty($header_authorization)) { - $token = explode(' ', $header_authorization)[1]; + $token = $this->readHeaderToken(); + if (!empty($token)) { $admin = Cache::get($token); } else { $admin = session('admin'); @@ -528,6 +527,15 @@ class AdminControllerBase extends BaseController $this->assign('session_admin', $model_admin, -1); } + protected function readHeaderToken(){ + $header_authorization = $this->request->header('Authorization'); + if (!empty($header_authorization)) { + $token = explode(' ', $header_authorization)[1]; + return $token; + } + return null; + } + /** * 严格校验接口是否为POST请求 */