all(), [ 'email' => ['required', 'string', 'email'], 'password' => ['required', 'string'], ]); if ($validator->fails()) { return response()->json([ 'status' => 'error', 'message' => 'Validation failed', 'errors' => $validator->errors() ], 422); } // 2. Поиск пользователя $user = User::where('email', $request->email)->first(); // 3. Проверка пароля if (!$user || !Hash::check($request->password, $user->password)) { return response()->json([ 'status' => 'error', 'message' => 'Invalid credentials' ], 401); } // 4. Генерация нового токена Sanctum $token = $user->createToken('auth_token')->plainTextToken; return response()->json([ 'status' => 'success', 'message' => 'Logged in successfully', 'data' => [ 'user' => $user, 'token_type' => 'Bearer', 'access_token' => $token, ] ], 200); } public function logout(Request $request) { // Удаление текущего токена, с которым пришел пользователь $request->user()->currentAccessToken()->delete(); return response()->json([ 'status' => 'success', 'message' => 'Logged out successfully' ], 200); } }