giftcon_dev/app/Http/Controllers/Admin/Auth/AdminAuthController.php
2026-01-08 14:35:14 +09:00

54 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers\Admin\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\ValidationException;
class AdminAuthController extends Controller
{
// 로그인 폼
public function create()
{
return view('admin.auth.login');
}
// 로그인 처리
public function store(Request $request)
{
$credentials = $request->validate([
'email' => ['required', 'email'],
'password' => ['required', 'string'],
]);
// remember 체크박스 지원 (선택)
$remember = $request->boolean('remember');
// 핵심: admin guard로 로그인 시도
if (! Auth::guard('admin')->attempt($credentials, $remember)) {
throw ValidationException::withMessages([
'email' => ['이메일 또는 비밀번호가 올바르지 않습니다.'],
]);
}
// 세션 고정 공격 방지
$request->session()->regenerate();
return redirect()->route('admin.home');
}
// 로그아웃 처리
public function destroy(Request $request)
{
Auth::guard('admin')->logout();
// 세션 무효화 + CSRF 토큰 재발급
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect()->route('admin.login');
}
}