Przeglądaj źródła

修复:用户被删除后前台退出登录态

Yahoo 4 lat temu
rodzic
commit
d77dd99a7f
1 zmienionych plików z 13 dodań i 7 usunięć
  1. 13 7
      app/api/model/User.php

+ 13 - 7
app/api/model/User.php

@@ -50,17 +50,23 @@ class User extends UserModel
     /**
      * 获取用户信息
      * @param string $token
-     * @return bool|static
+     * @return User|array|false|null
+     * @throws BaseException
      */
     public static function getUserByToken(string $token)
     {
-        if (Cache::has($token)) {
-            // 获取微信用户openid
-            $userId = Cache::get($token)['user']['user_id'];
-            // 获取用户信息s
-            return self::detail($userId);
+        // 检查登录态是否存在
+        if (!Cache::has($token)) {
+            return false;
+        }
+        // 获取用户的ID
+        $userId = Cache::get($token)['user']['user_id'];
+        // 获取用户基本信息
+        $userInfo = self::detail($userId);
+        if (empty($userInfo) || $userInfo['is_delete']) {
+            throwError('很抱歉,用户信息不存在或已删除', config('status.not_logged'));
         }
-        return false;
+        return $userInfo;
     }
 
     /**