first(); // 不验证密码,方便演示 if (!$user) { return null; } // if (!$user || !Hash::check($password, $user->password)) { // return null; // } // 生成会话令牌 $token = Str::random(64); // 存储会话信息 session([ 'oauth_user_id' => $user->user_id, 'oauth_token' => $token ]); return [ 'id' => $user->user_id, 'username' => $user->mobile, 'token' => $token ]; } /** * 获取当前登录用户 * * @return array|null */ public function user(): ?array { $userId = session('oauth_user_id'); $token = session('oauth_token'); if (!$userId || !$token) { return null; } $user = User::find($userId); if (!$user) { return null; } return [ 'id' => $user->user_id, 'username' => $user->mobile, 'token' => $token ]; } /** * 检查是否已登录 * * @return bool */ public function check(): bool { return $this->user() !== null; } /** * 退出登录 * * @return void */ public function logout(): void { session()->forget(['oauth_user_id', 'oauth_token']); } }