Files
sam-manage/app/Http/Controllers/Auth/LoginController.php

58 lines
1.4 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\LoginRequest;
use App\Services\AuthService;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
class LoginController extends Controller
{
public function __construct(
private readonly AuthService $authService
) {}
/**
* 로그인 표시
*/
public function showLoginForm(): View
{
return view('auth.login');
}
/**
* 로그인 처리
*/
public function login(LoginRequest $request): RedirectResponse
{
$credentials = $request->only('email', 'password');
$remember = $request->boolean('remember', false);
if ($this->authService->login($credentials, $remember)) {
$request->session()->regenerate();
return redirect()->intended('/dashboard')
->with('success', '로그인되었습니다.');
}
return back()
->withErrors(['email' => '이메일 또는 비밀번호가 올바르지 않습니다.'])
->withInput($request->only('email'));
}
/**
* 로그아웃 처리
*/
public function logout(): RedirectResponse
{
$this->authService->logout();
request()->session()->invalidate();
request()->session()->regenerateToken();
return redirect('/login')
->with('success', '로그아웃되었습니다.');
}
}