where('token_hash', hash('sha256', $token))->whereNull('revoked_at') ->where('expires_at', '>', date('Y-m-d H:i:s'))->first(); $user = $session ? MiniUser::query()->where('id', $session->user_id)->where('status', 1)->first() : null; if (!$user || ($user->appid === TestPhoneIdentityProvider::APP_ID && !TestPhoneIdentityProvider::enabled())) { throw new ApiException(40101, '登录状态已失效', 401); } return new Principal((string) $session->user_id); } }