input('username'); $password = $request->input('password'); // 查询用户 $user = User::query() ->whereNotNull('name') ->where('name', $username) ->first(); // 检查用户是否存在 if (is_null($user)) { return responseJsonAsBadRequest('用户名或者密码错误'); } // 验证密码是否正确 if (! Hash::check($password, $user->getAuthPassword())) { return responseJsonAsBadRequest('用户名或者密码错误'); } // 返回成功响应和 token return responseJson(200, '登录成功', $this->getToken($user)); } /** * 注销的接口 * * @return \Illuminate\Http\JsonResponse 返回注销结果的 JSON 响应 */ public function logout() { // 注销用户 auth('api')->logout(); return responseJsonAsDeleted('注销成功'); } /** * 注册的接口 * * @param RegisterUserRequest $request 注册请求数据 * @return \Illuminate\Http\JsonResponse 返回注册结果的 JSON 响应 */ public function register(RegisterUserRequest $request) { // 获取用户名和密码 $username = $request->input('username'); $password = $request->input('password'); // 检查用户名是否已存在 if (User::query()->where('name', $username)->exists()) { return responseJsonAsBadRequest('用户名已经存在, 请换一个用户名'); } // 创建新用户 $user = new User(); $user->name = $username; $user->password = Hash::make($password); // 确保密码被哈希处理 $user->sex = UserSexEnum::MAN; // 默认性别 $user->is_init_email = 1; // 初始化邮箱状态 $user->is_active = UserStatusEnum::ACTIVE; // 默认激活状态 $user->save(); // 保存用户信息 // 返回成功响应和 token return responseJson(201, '注册成功', $this->getToken($user)); } /** * 拼接 token * * @param User $user 用户模型 * @return array 返回包含 token 的数组 */ protected function getToken(User $user) { // 生成 token $prefix = 'Bearer'; $token = auth('api')->login($user); // 登录并获取 token $me = new OwnResource($user); // 创建用户资源 return compact('prefix', 'token', 'me'); // 返回 token 和用户信息 } }