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.

52 lines
1.2 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\RedirectResponse;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Auth;
  8. use Illuminate\Support\Facades\Route;
  9. use Inertia\Inertia;
  10. use Inertia\Response;
  11. class AuthenticatedSessionController extends Controller
  12. {
  13. /**
  14. * Display the login view.
  15. */
  16. public function create(): Response
  17. {
  18. return Inertia::render('Auth/Login', [
  19. 'canResetPassword' => Route::has('password.request'),
  20. 'status' => session('status'),
  21. ]);
  22. }
  23. /**
  24. * Handle an incoming authentication request.
  25. */
  26. public function store(LoginRequest $request): RedirectResponse
  27. {
  28. $request->authenticate();
  29. $request->session()->regenerate();
  30. return redirect()->intended(route('dashboard', absolute: false));
  31. }
  32. /**
  33. * Destroy an authenticated session.
  34. */
  35. public function destroy(Request $request): RedirectResponse
  36. {
  37. Auth::guard('web')->logout();
  38. $request->session()->invalidate();
  39. $request->session()->regenerateToken();
  40. return redirect('/');
  41. }
  42. }