로그인 회원가입
모두인포
전체IT경제사회생활스포츠시사여행연애

PHP Laravel 프레임워크를 이용한 간단한 로그인 페이지

lmkfox · 2025-05-11 · 조회 0
PHP Laravel 프레임워크를 이용한 간단한 로그인 페이지
✅ 전제 조건 - Laravel 10.x 이상 설치 (또는 9.x도 가능) - Composer, PHP 8.x 이상 - MySQL 혹은 SQLite 등 DB 설정 완료 ✅ 1. 새 Laravel 프로젝트 생성 composer create-project laravel/laravel loginApp cd loginApp ✅ 2. 데이터베이스 설정 .env 파일 수정 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=login_app DB_USERNAME=root DB_PASSWORD=비밀번호 DB 생성 후 마이그레이션: php artisan migrate ✅ 3. 사용자 테이블에 예제 사용자 추가 (Seeder 사용) php artisan tinker use App\Models\User; use Illuminate\Support\Facades\Hash; User::create([ 'name' => 'admin', 'email' => 'admin@example.com', 'password' => Hash::make('1234') ]); ✅ 4. 로그인 라우트 설정 routes/web.php use Illuminate\Support\Facades\Route; use App\Http\Controllers\AuthController; Route::get('/', fn() => redirect('/login')); Route::get('/login', [AuthController::class, 'showLogin'])->name('login'); Route::post('/login', [AuthController::class, 'login']); Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); Route::get('/dashboard', [AuthController::class, 'dashboard'])->middleware('auth'); ✅ 5. 컨트롤러 생성 php artisan make:controller AuthController app/Http/Controllers/AuthController.php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class AuthController extends Controller { public function showLogin() { return view('login'); } public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->intended('/dashboard'); } return back()->withErrors([ 'login' => '이메일 또는 비밀번호가 올바르지 않습니다.', ]); } public function dashboard() { return view('dashboard'); } public function logout() { Auth::logout(); return redirect('/login'); } } ✅ 6. 뷰 파일 생성 resources/views/login.blade.php <!DOCTYPE html> <html> <head> <title>로그인</title> </head> <body> <h2>로그인</h2> @if ($errors->any()) <div style="color: red;"> {{ $errors->first('login') }} </div> @endif <form method="POST" action="/login"> @csrf <label>이메일</label> <input type="email" name="email" required><br><br> <label>비밀번호</label> <input type="password" name="password" required><br><br> <button type="submit">로그인</button> </form> </body> </html> resources/views/dashboard.blade.php <!DOCTYPE html> <html> <head> <title>대시보드</title> </head> <body> <h2>{{ auth()->user()->name }}님, 환영합니다.</h2> <form method="POST" action="{{ route('logout') }}"> @csrf <button type="submit">로그아웃</button> </form> </body> </html> ✅ 7. 미들웨어 세션 설정 세션 유지와 인증 처리를 위해 web 미들웨어는 기본 적용되어 있으며, /dashboard에는 추가로 auth 미들웨어를 사용했습니다. 이 설정은 RouteServiceProvider에서 관리됩니다.  보안 팁 - 비밀번호는 Hash::make()로 암호화해야 하며, 로그인 시 Auth::attempt() 사용 - 로그인 시 brute-force 방지를 위한 로그인 시도 제한 (ThrottleRequests 미들웨어)도 고려 - 프로덕션 환경에서는 HTTPS 적용 권장

댓글

아직 댓글이 없습니다.

로그인 후 댓글을 남길 수 있습니다.