Selaa lähdekoodia

优化:获取登录用户关联的第三方用户信息(当前客户端)

Yahoo 4 vuotta sitten
vanhempi
säilyke
7972bc22a9
3 muutettua tiedostoa jossa 20 lisäystä ja 9 poistoa
  1. 11 4
      app/api/model/User.php
  2. 3 1
      app/api/model/UserOauth.php
  3. 6 4
      app/api/service/User.php

+ 11 - 4
app/api/model/User.php

@@ -13,10 +13,11 @@ declare (strict_types=1);
 namespace app\api\model;
 
 use think\facade\Cache;
-use yiovo\captcha\facade\CaptchaApi;
 use app\api\service\User as UserService;
+use app\api\model\UserOauth as UserOauthModel;
 use app\common\model\User as UserModel;
 use cores\exception\BaseException;
+use yiovo\captcha\facade\CaptchaApi;
 
 /**
  * 用户模型类
@@ -59,13 +60,19 @@ class User extends UserModel
         if (!Cache::has($token)) {
             return false;
         }
-        // 获取用户的ID
-        $userId = Cache::get($token)['user']['user_id'];
-        // 获取用户基本信息
+        // 用户的ID
+        $userId = (int)Cache::get($token)['user']['user_id'];
+        // 用户基本信息
         $userInfo = self::detail($userId);
         if (empty($userInfo) || $userInfo['is_delete']) {
             throwError('很抱歉,用户信息不存在或已删除', config('status.not_logged'));
         }
+        // 获取用户关联的第三方用户信息(当前客户端)
+        try {
+            $userInfo['currentOauth'] = UserOauthModel::getOauth($userId, getPlatform());
+        } catch (\Throwable $e) {
+            throwError($e->getMessage());
+        }
         return $userInfo;
     }
 

+ 3 - 1
app/api/model/UserOauth.php

@@ -8,7 +8,7 @@
 // +----------------------------------------------------------------------
 // | Author: 萤火科技 <admin@yiovo.com>
 // +----------------------------------------------------------------------
-declare (strict_types = 1);
+declare (strict_types=1);
 
 namespace app\api\model;
 
@@ -26,6 +26,8 @@ class UserOauth extends UserOauthModel
      * @var array
      */
     protected $hidden = [
+        'store_id',
+        'is_delete',
         'create_time',
         'update_time',
     ];

+ 6 - 4
app/api/service/User.php

@@ -15,7 +15,7 @@ namespace app\api\service;
 use app\api\model\User as UserModel;
 use app\api\model\UserOauth as UserOauthModel;
 use app\common\service\BaseService;
-use app\common\exception\BaseException;
+use cores\exception\BaseException;
 
 /**
  * 用户服务类
@@ -87,13 +87,15 @@ class User extends BaseService
 
     /**
      * 获取当前登录的用户信息
-     * @return UserModel|bool|null
+     * @return UserModel|array|false|null
+     * @throws BaseException
      */
     private function getLoginUser()
     {
         // 获取用户认证Token
-        $token = $this->getToken();
-        if ($token === false) return false;
+        if (!$token = $this->getToken()) {
+            return false;
+        }
         // 获取用户信息
         if (!$user = UserModel::getUserByToken($token)) {
             $this->error = '没有找到用户信息';