ソースを参照

fix: 修改token存储key以区分不同用户类型

runphp 1 ヶ月 前
コミット
5d3d812c38
2 ファイル変更4 行追加8 行削除
  1. 1 7
      src/Auth.php
  2. 3 1
      src/Hook/AuthHook.php

+ 1 - 7
src/Auth.php

@@ -10,7 +10,6 @@ use Firebase\JWT\Key;
 use Ramsey\Uuid\Uuid;
 use SixShop\Auth\Contracts\AuthInterface;
 use SixShop\Auth\Enum\UserTypeEnum;
-use think\Env;
 use think\facade\Event;
 
 class Auth implements AuthInterface
@@ -19,7 +18,7 @@ class Auth implements AuthInterface
 
     public const int SLEEP_WAY = 60;
 
-    private static array $config;
+    public static array $config;
 
     public function __construct(private readonly UserTypeEnum $userType)
     {
@@ -83,9 +82,4 @@ class Auth implements AuthInterface
     {
         return $this->userType;
     }
-
-    public static function getConfig(): array
-    {
-        return self::$config;
-    }
 }

+ 3 - 1
src/Hook/AuthHook.php

@@ -24,7 +24,9 @@ class AuthHook
     #[Hook("token_generate")]
     public function generateToken($payload): void
     {
-        $this->cache->remember(self::TOKEN_INFO . $payload->jti, (array) $payload, $payload->exp - time());
+        $userId = decrypt_data($payload->sub, Auth::$config['jwt_secret']);
+        $userType = $payload->aud;
+        $this->cache->remember(self::TOKEN_INFO .$userType.':'.$userId, (array) $payload, $payload->exp - time());
     }
 
     /**