rkljw 1 тиждень тому
батько
коміт
54d0d339fc

+ 50 - 37
app/Controller/LoginController.php

@@ -63,7 +63,7 @@ class LoginController extends AbstractController
             $errorMessage = $validator->errors()->first();
             return Result::error($errorMessage);
         }
-    //    $comm = new CommonService();
+        //    $comm = new CommonService();
         // $redis = $this->container->get(\Hyperf\Redis\Redis::class);
         // $code = $redis->get($reqData['code']);
         // if (empty($code)) {
@@ -99,11 +99,11 @@ class LoginController extends AbstractController
                 'SiteId'=>Context::get("SiteId")
             ];
             var_dump("参数:",$authData);
-           $resultAuth =  $this->checkUserAuth($authData);
+            $resultAuth =  $this->checkUserAuth($authData);
 
-           if(!$resultAuth){
-               return Result::error("您没有权限登陆此网站");
-           }
+            if(!$resultAuth){
+                return Result::error("您没有权限登陆此网站");
+            }
         }
         $userData = [
             'uid' => $userInfos['data']['id'], // 如果使用单点登录,必须存在配置文件中的sso_key的值,一般设置为用户的id
@@ -118,21 +118,21 @@ class LoginController extends AbstractController
         // 检查是否有旧的token
         $old_token = UserToken::where('user_id', $userData['uid'])->first();
         if (!empty($old_token)) {
-                $jwt->logout($old_token->token);
-                try {
-                    $jwt->verifyToken($old_token->token);
-                }catch (\Exception $exception){
-                    $code = $exception->getCode();
-                    if ($code== 400) {
-                        $new_token = UserToken::where('user_id', $userData['uid'])->update(['token' => $token->toString()]);
-                        if (empty($new_token)) {
-                            return Result::error("Token过期失败!");
-                        }
-                        
-                    } else{
+            $jwt->logout($old_token->token);
+            try {
+                $jwt->verifyToken($old_token->token);
+            }catch (\Exception $exception){
+                $code = $exception->getCode();
+                if ($code== 400) {
+                    $new_token = UserToken::where('user_id', $userData['uid'])->update(['token' => $token->toString()]);
+                    if (empty($new_token)) {
                         return Result::error("Token过期失败!");
                     }
+
+                } else{
+                    return Result::error("Token过期失败!");
                 }
+            }
         }else{
             $usernew_token = $token->toString();
             $user_token =  UserToken::create([
@@ -374,8 +374,8 @@ class LoginController extends AbstractController
             return Result::error($errorMessage);
         }
         try {
-           $status =  $jwt->verifyToken($reqData['token']);
-           var_dump("状态:",$status);
+            $status =  $jwt->verifyToken($reqData['token']);
+            //   var_dump("状态:",$status);
             return Result::success(['isLogin' => true]);
         }catch(\Exception $e){
             return Result::error('token已过期:'.$e->getMessage());
@@ -465,26 +465,31 @@ class LoginController extends AbstractController
         if (empty($theHost)) {
             return Result::error('系统配置错误:THE_HOST 未定义');
         }
+        var_dump("admintoken:",$adminToken);
         // 如果存在 adminToken,则进行登录校验
         if (!empty($adminToken)) {
             // 处理登录
             $redis = $this->container->get(\Hyperf\Redis\Redis::class);
+            var_dump("ticket1111:",$ticket);
             if(!empty($ticket)){
                 if (!empty($ticket) && $redis->exists('ticket:' . $ticket)) {
-            
+
                     $backurl = rtrim($backurl, '/');
                     return $this->response->redirect($this->fun_http($backurl . '?ticket=' . $ticket . '&admintoken=' . urlencode($adminToken)), 302);
-      
+
                 }else{
+                    var_dump("222222222:");
                     return $this->response->redirect($this->fun_http('http://'.$theHost.'/#/login?backurl='.urlencode($backurl)), 302);
                 }
-               
+
             }else{
                 $ticket = md5($adminToken);
             }
+            var_dump("333333333333333:");
             return $this->response->redirect($this->fun_http($backurl . '?ticket=' . $ticket . '&admintoken=' . urlencode($adminToken)), 302);
-           
+
         }else{
+            var_dump("444444444444444:");
             return $this->response->redirect($this->fun_http('http://'.$theHost.'/#/login?backurl='.urlencode($backurl)), 302);
         }
     }
@@ -547,6 +552,7 @@ class LoginController extends AbstractController
      */
     public function logout(Jwt $jwt)
     {
+
         $reqData = $this->request->all();
         $validator = $this->validationFactory->make(
             $reqData,
@@ -565,30 +571,26 @@ class LoginController extends AbstractController
         }
         $redis = $this->container->get(\Hyperf\Redis\Redis::class);
         $ticket = md5($reqData['admintoken']);
-        $isDel = 0;
-        if ($redis->exists('ticket:' . $ticket)) {
-            $res = $redis->del('ticket:' . $ticket);
-            if (!!$res && $res == 1) $isDel = 1;
-        }else{
-            $isDel = 1;
-        }
 
-        $expire = time() - 3600;
+        $res = $redis->del('ticket:' . $ticket);
+        var_dump("删除redis:", $res);
+        var_dump("获取redis:", $redis->get('ticket:' . $ticket));
+        $expire = time();
         $cookieName = 'Admin-Token';
         // 创建 Cookie 实例
         $cookie = new Cookie($cookieName, '', $expire, '/');
         // 清空 Cookie
-        $this->response = $this->response->withCookie($cookie);
-//        $this->response->withCookie("Admin-Token", '', time(), '/');
-//        setcookie("Admin-Token", "", time(), "/");
+        $r = $this->response = $this->response->withCookie($cookie);
+        var_dump("清空Cookie:", $r);
         try {
             $jwt->logout($reqData['admintoken']);
-
         }catch (\Exception $e){
-            $backurl = $this->fun_http($reqData['backurl']);
-            return $this->response->redirect($backurl, 302);
+            var_dump("返回错误信息:",$e->getMessage());
+//            $backurl = $this->fun_http($reqData['backurl']);
+//            return $this->response->redirect($backurl, 302);
         }
         $backurl = $this->fun_http($reqData['backurl']);
+        var_dump("返回地址:",$backurl);
         return $this->response->redirect($backurl, 302);
     }
 
@@ -598,7 +600,9 @@ class LoginController extends AbstractController
      */
     public function backlogin()
     {
+
         $reqData = $this->request->all();
+        var_dump("===============接收参数:",$reqData);
         $validator = $this->validationFactory->make(
             $reqData,
             [
@@ -617,9 +621,18 @@ class LoginController extends AbstractController
         $redis = $this->container->get(\Hyperf\Redis\Redis::class);
         $ticket = md5($reqData['token']);
         $res = $redis->set('ticket:' . $ticket, $reqData['token'],  3600*24);
+        var_dump("===============返回值:",$res);
+        $expire = time()+3600*24;
+        $cookieName = 'Admin-Token';
+        // 创建 Cookie 实例
+        $cookie = new Cookie($cookieName, $reqData['token'], $expire, '/');
+        // 清空 Cookie
+        $r = $this->response = $this->response->withCookie($cookie);
+        var_dump("设置token:", $r);
         if($res && !empty($ticket)){
             $url = $reqData['backurl'] . '/?ticket=' . $ticket . '&admintoken=' . urlencode($reqData['token']);
             $url = $this->fun_http($url);
+            var_dump("跳转地址gogo:",$url);
             return $this->response->redirect($url, 302);
         }
     }

+ 1 - 1
app/Middleware/Auth/FooMiddleware.php

@@ -43,7 +43,7 @@ class FooMiddleware implements MiddlewareInterface
         $header = $request->getHeaders();
         try {
             if($header &&  isset($header['token']) && $header['token'][0]!='null' && $header['token'][0]!='' && isset($header['token'][0])){
-                var_dump("token类型:",$header['token'][0]);
+//                var_dump("token类型:",$header['token'][0]);
                 $ver = $this->JWT->getClaimsByToken($header['token'][0]);
                 $tokenTime =  $this->JWT->getTokenDynamicCacheTime($header['token'][0]);
                 if($tokenTime==0){