Chapter 3-5 Django 로그인 페이지 만들기

2025. 5. 6. 18:14·Django

🔐 Django 로그인 페이지 만들기

1️⃣ 로그인 정보 저장 방식: 세션 활용

✔️ 로그인 정보는 민감한 데이터이므로 브라우저에 저장하지 않고, 서버의 세션에 저장해야 합니다.
✔️ Django에서는 이를 위해 강력한 인증 시스템인 Django Authentication을 기본으로 제공합니다.

🔗 공식 문서 참고: Authentication views


2️⃣ URL 설정 - auth URL 포함시키기

# urls.py
from django.contrib import admin
from django.urls import path, include
from blog import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.blog_list, name='blog_list'),
    path('<int:pk>/', views.blog_detail, name="blog_detail"),

    # ✅ 로그인 URL 추가
    path('accounts/', include('django.contrib.auth.urls')),
]
  • django.contrib.auth.urls는 로그인, 로그아웃, 비밀번호 변경 등 기본 인증 뷰를 자동으로 제공합니다.

3️⃣ 로그인 템플릿 작성

경로: templates/registration/login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>로그인</title>
</head>
<body>
    <form method="POST">
        {% csrf_token %}
        {{ form.as_p }}  <!-- 폼 데이터를 p 태그로 출력 -->
        <button type="submit">로그인</button>
    </form>
</body>
</html>

📌 접속 주소: http://127.0.0.1:8000/accounts/login/


4️⃣ 로그인 후 이동 경로 설정

# settings.py
LOGIN_REDIRECT_URL = '/'  # 로그인 성공 시 이동할 경로

→ 루트 페이지(/)는 blog_list 뷰로 연결되어 있어, 로그인 후 블로그 목록 페이지로 이동됩니다.


5️⃣ CSRF 보안 이해

✔️ CSRF(Cross Site Request Forgery) 토큰은 Django에서 POST 요청 시 자동으로 검증됩니다.
✔️ settings.py의 MIDDLEWARE 설정에 포함되어 있으며, 모든 POST 요청에 csrf_token이 필요합니다.

{% csrf_token %}  <!-- form 내부에 반드시 포함 -->

📌 미포함 시 에러 발생:

403 Forbidden: CSRF token missing or incorrect

6️⃣ 로그인 상태 확인 - 사용자명 출력

블로그 목록 템플릿에 다음을 추가하여 로그인된 사용자 확인 가능:

<!-- blog_list.html -->
<h3>{{ request.user.username }}</h3>  <!-- 현재 로그인된 사용자 -->

✅ 확인 요약 체크리스트

항목 완료 여부

auth.urls 추가 ✅
login.html 작성 ✅
CSRF 토큰 포함 ✅
LOGIN_REDIRECT_URL 설정 ✅
로그인 후 사용자 확인 코드 추가 ✅

💬 Django Authentication 시스템을 활용하면 로그인 기능을 빠르고 안전하게 구현할 수 있습니다. 사용자 인증을 시작하는 가장 간편한 방법이에요!

'Django' 카테고리의 다른 글

Chapter 3-6 Django 회원가입(SignUp) 페이지 만들기  (0) 2025.05.06
Chapter 3-5 Django 로그아웃 기능 만들기  (0) 2025.05.06
Chapter 3-4 Django에서의 쿠키와 세션 이해 및 실습  (0) 2025.05.06
Chapter 3-3 Django 블로그 상세 페이지 만들기  (0) 2025.05.06
Chapter 3-2 Django 블로그 목록 페이지 만들기  (0) 2025.05.06
'Django' 카테고리의 다른 글
  • Chapter 3-6 Django 회원가입(SignUp) 페이지 만들기
  • Chapter 3-5 Django 로그아웃 기능 만들기
  • Chapter 3-4 Django에서의 쿠키와 세션 이해 및 실습
  • Chapter 3-3 Django 블로그 상세 페이지 만들기
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (472) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (21)
      • Database (40)
      • 멘토링 (7) N
      • 특강 (18)
      • 기술블로그 (126) N
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (34) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 3-5 Django 로그인 페이지 만들기
상단으로

티스토리툴바