AuthenticatedSessionController.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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\RedirectResponse;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Auth;
  8. use Illuminate\Support\Facades\Route;
  9. use Illuminate\Validation\ValidationException;
  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. * @throws ValidationException
  27. */
  28. public function store(LoginRequest $request): RedirectResponse
  29. {
  30. $request->authenticate();
  31. $request->session()->regenerate();
  32. return redirect()->intended(route('index', absolute: false));
  33. }
  34. /**
  35. * Destroy an authenticated session.
  36. */
  37. public function destroy(Request $request): RedirectResponse
  38. {
  39. Auth::guard('web')->logout();
  40. $request->session()->invalidate();
  41. $request->session()->regenerateToken();
  42. return redirect()->route('index');
  43. }
  44. }