Parcourir la source

用户重复登录

15313670163 il y a 2 mois
Parent
commit
b2a7c92cb8
3 fichiers modifiés avec 52 ajouts et 32 suppressions
  1. 15 5
      .env
  2. 33 26
      app/Controller/LoginController.php
  3. 4 1
      app/Model/UserToken.php

+ 15 - 5
.env

@@ -1,16 +1,26 @@
 APP_NAME=admin_consumer
 APP_ENV=dev
-HOST = http://192.168.1.201:9501/
+# HOST = http://192.168.1.201:9501/
+# DB_DRIVER=mysql
+# DB_HOST=127.0.0.1
+# DB_PORT=3306
+# DB_DATABASE=hyperf
+# DB_USERNAME=root
+# DB_PASSWORD=root123
+# DB_CHARSET=utf8mb4
+# DB_COLLATION=utf8mb4_unicode_ci
+# DB_PREFIX=
+
+HOST = http://101.254.114.211:13306/
 DB_DRIVER=mysql
-DB_HOST=127.0.0.1
-DB_PORT=3306
+DB_HOST=101.254.114.211
+DB_PORT=13306
 DB_DATABASE=hyperf
 DB_USERNAME=root
-DB_PASSWORD=root123
+DB_PASSWORD=xKmapDpKCxMMSkbe
 DB_CHARSET=utf8mb4
 DB_COLLATION=utf8mb4_unicode_ci
 DB_PREFIX=
-
 #REDIS_HOST=101.254.114.211
 #REDIS_AUTH=YPWWnFnNebc7427B
 #REDIS_PORT=26739

+ 33 - 26
app/Controller/LoginController.php

@@ -68,17 +68,18 @@ class LoginController extends AbstractController
             $where = [
                 'user_name' => $reqData['username'],
             ];
-        }
+        } 
+        // var_dump("where:", $where);
 //        $this->logger->info("验证之前");
         $userInfos = $this->userServiceClient->verifyUserInfo($where);
         if ($userInfos['code'] == 0) {
             return Result::error("用户不存在");
         }
-//        var_dump("数据:",$userInfos);
+    //    var_dump("数据:",$userInfos);
         if($userInfos['data']['status']==0){
             return Result::error("用户已经冻结");
         }
-//        var_dump("用户信息:", $userInfos);
+    //    var_dump("用户信息:", $userInfos);
 //        $this->logger->info("验证用户返回值:", $userInfos);
         if (md5(md5($reqData['password']) . $userInfos['data']['salt']) != $userInfos['data']['password']) {
             return Result::error("登陆密码错误");
@@ -92,34 +93,40 @@ class LoginController extends AbstractController
             'level_id' => $userInfos['data']['level_id'],
             'type_id' => $userInfos['data']['type_id'],
         ];
-//        var_dump($userData);
+    //    var_dump($userData);
         // 使用默认场景登录
         $token = $jwt->getToken('default', $userData);
 
+
+
         // 检查是否二次登录
         // 检查是否有旧的token
-        // $old_token = UserToken::where('user_id', $userInfos['data']['id'])->orderBy('created_at')->first();
-        // var_dump("==============================old_token",$old_token);
-        // if (!empty($old_token)) {
-        //     if ($old_token->token != $token->toString()) {
-        //         $out = $jwt->logout('default', $userData);
-        //         if ($out != $old_token->token) {
-        //             $log_out = UserToken::where('user_id', $userInfos['data']['id'])->update(['token' => $out]);
-        //             var_dump("******************log_out",$log_out);
-        //         } else {
-        //             return Result::error("请不要重复登录!");
-        //         }
-        //     }
-        // }else{
-        //     $user_token =  UserToken::create([
-        //         'user_id' => $userInfos['data']['id'],
-        //         'token' => $token->toString()
-        //     ]);
-        //     var_dump("==============================user_token",$user_token);
-        //     if (!$user_token) {
-        //         return Result::error("登录失败!");
-        //     }
-        // }
+        // var_dump("--------------",$userData['uid']);
+        // return Result::success($userData['uid']);
+        $old_token = UserToken::where('user_id', $userData['uid'])->first();
+        // var_dump("==============================old_token",$old_token->token->toString());
+        if (!empty($old_token)) {
+            if ($old_token->token != $token->toString()) {
+                $out = $jwt->logout($old_token->token);
+                $time = $jwt->getTokenDynamicCacheTime($old_token->token);
+                if ($time == 0) {
+                    $new_token = UserToken::where('user_id', $$userData['uid'])->update(['token' => $out]);
+                    // var_dump("******************log_out",$log_out);
+                } 
+                if(!isset($new_token) || empty($new_token)) {
+                    return Result::error("Token过期失败!");
+                }
+            }
+        }else{
+            $user_token =  UserToken::create([
+                'user_id' => $userData['uid'],
+                'token' => $token->toString()
+            ]);
+            var_dump("==============================user_token",$token->toString());
+            if (empty($user_token)) {
+                return Result::error("登录失败!");
+            }
+        }
 
         $data = [
             'token' => $token->toString(),

+ 4 - 1
app/Model/UserToken.php

@@ -18,7 +18,10 @@ class UserToken extends Model
     /**
      * The attributes that are mass assignable.
      */
-    protected array $fillable = [];
+    protected array $fillable = [
+        'user_id', // 添加 user_id 到 fillable 属性
+        'token',
+    ];
 
     /**
      * The attributes that should be cast to native types.