Files
sam-manage/app/Http/Controllers/Auth/LoginController.php
hskwon 127c2fe877 feat: 인증 및 권한 시스템 개선
- LoginController: 로그인 처리 개선
- UserPermissionController: 권한 관리 기능 개선
- User 모델: 권한 관련 메서드 추가
- AuthService: 인증 서비스 로직 개선
- Middleware 추가
- bootstrap/app.php: 미들웨어 등록
- 권한 관리 뷰 개선 (user-permissions, users)
2025-11-30 21:04:32 +09:00

63 lines
1.6 KiB
PHP

<?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', '로그인되었습니다.');
}
// AuthService에서 설정한 오류 메시지 사용
$errorMessage = $this->authService->getLoginError()
?? '이메일 또는 비밀번호가 올바르지 않습니다.';
return back()
->withErrors(['email' => $errorMessage])
->withInput($request->only('email'));
}
/**
* 로그아웃 처리
*/
public function logout(): RedirectResponse
{
$this->authService->logout();
request()->session()->invalidate();
request()->session()->regenerateToken();
return redirect('/login')
->with('success', '로그아웃되었습니다.');
}
}