Procházet zdrojové kódy

客户端-增加将所有用户令牌设置为失效接口

sunxbiao před 11 měsíci
rodič
revize
74cd5d2e5c
3 změnil soubory, kde provedl 27 přidání a 2 odebrání
  1. 23 0
      app/controller/api/Auth.php
  2. 2 2
      crmeb/services/JwtTokenService.php
  3. 2 0
      route/api.php

+ 23 - 0
app/controller/api/Auth.php

@@ -2886,5 +2886,28 @@ class Auth extends BaseController
2886 2886
     
2887 2887
     }
2888 2888
 
2889
+    /**
2890
+     * 将 所有用户 令牌设置为失效
2891
+     * @return \think\response\Json
2892
+     */
2893
+    public function invalidateAllTokens(): \think\response\Json
2894
+    {
2895
+        // 获取所有用户token键(可能需要使用Redis的keys命令或scan)
2896
+        $userTokens = Cache::store('redis')->keys('user_*');
2897
+        $javaTokens = Cache::store('redis')->keys('java_*');
2898
+
2899
+        // 批量删除所有token
2900
+        // foreach ($userTokens as $token) {
2901
+        //     Cache::delete($token);
2902
+        // }
2903
+        //
2904
+        // foreach ($javaTokens as $token) {
2905
+        //     Cache::delete($token);
2906
+        // }
2889 2907
 
2908
+        // 记录操作日志
2909
+        // ...
2910
+
2911
+        return json(['success' => true, 'message' => '所有Token已失效', 'count' => count($userTokens)]);
2912
+    }
2890 2913
 }

+ 2 - 2
crmeb/services/JwtTokenService.php

@@ -33,7 +33,7 @@ class JwtTokenService
33 33
     {
34 34
         $time = time();
35 35
         $host = app('request')->host();
36
-        $exp = intval(Config::get('admin.token_ext', 3000));
36
+        $exp = intval(Config::get('admin.token_ext', 720));
37 37
         $params += [
38 38
             'iss' => $host,
39 39
             'aud' => $host,
@@ -44,7 +44,7 @@ class JwtTokenService
44 44
         $params['jti'] = [$id, $type];
45 45
         $token = JWT::encode($params, Config::get('app.app_key', 'default'));
46 46
         $params['token'] = $token;
47
-        $params['out'] = 3000 * 60 * 60;
47
+        $params['out'] = 720 * 60 * 60;
48 48
         return $params;
49 49
     }
50 50
 

+ 2 - 0
route/api.php

@@ -631,6 +631,8 @@ Route::group('api/', function () {
631 631
 
632 632
     //非强制登录
633 633
     Route::group(function () {
634
+        // 将 所有用户 令牌设置为失效
635
+        Route::get('invalidateAllTokens', 'api.Auth/invalidateAllTokens');
634 636
 
635 637
         //商学院管理
636 638
         Route::group('business_school', function () {