You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.3 KiB

  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\Auth\LoginRequest;
  5. use Illuminate\Http\JsonResponse;
  6. use Illuminate\Http\RedirectResponse;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. use Illuminate\Support\Facades\Route;
  10. use Inertia\Inertia;
  11. use Inertia\Response;
  12. class AuthenticatedSessionController extends Controller
  13. {
  14. /**
  15. * Display the login view.
  16. */
  17. public function create(): Response
  18. {
  19. return Inertia::render('Auth/Login', [
  20. 'canResetPassword' => Route::has('password.request'),
  21. 'status' => session('status'),
  22. ]);
  23. }
  24. /**
  25. * Handle an incoming authentication request.
  26. */
  27. public function store(LoginRequest $request): JsonResponse
  28. {
  29. $request->authenticate();
  30. $request->session()->regenerate();
  31. return response()->json([
  32. 'message' => 'Login successful!'
  33. ]);
  34. }
  35. /**
  36. * Destroy an authenticated session.
  37. */
  38. public function destroy(Request $request): JsonResponse
  39. {
  40. Auth::guard('web')->logout();
  41. $request->session()->invalidate();
  42. $request->session()->regenerateToken();
  43. return response()->json([
  44. 'message' => 'Logout successful!'
  45. ]);;
  46. }
  47. }