Chapter 3-5 Django 로그아웃 기능 만들기

2025. 5. 6. 18:27·Django

🚪 Django 로그아웃 기능 만들기

1️⃣ 개요

Django는 로그인/로그아웃을 기본으로 지원하는 django.contrib.auth.urls를 통해 빠르게 인증 기능을 구현할 수 있습니다. 로그아웃은 POST 요청으로 처리되어야 하므로, form 태그를 사용해 안전하게 구현합니다.


2️⃣ 로그아웃 UI 구성 (blog_list.html)

📌 로그인 여부에 따라 조건 분기하여 메뉴 출력:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>블로그</title>
</head>
<body>
    <nav>
        <div style="text-align: right">
            {% if request.user.is_authenticated %}  <!-- 로그인 상태 -->
                <form action="{% url 'logout' %}" method="POST" style="display: inline">
                    {% csrf_token %}
                    <button type="submit">로그아웃</button>
                </form>
                {{ request.user.username }}
            {% else %}  <!-- 비로그인 상태 -->
                <a href="{% url 'login' %}">로그인</a>
            {% endif %}
        </div>
    </nav>

    <h1>블로그 목록</h1>
    <!-- 블로그 리스트 출력부 -->
</body>
</html>

📌 {% url 'logout' %}: Django 내장 로그아웃 URL
📌 method="POST": 보안을 위해 로그아웃은 POST 방식으로 처리
📌 csrf_token: Django 보안 필수 요소


3️⃣ 로그아웃 후 이동 경로 설정 (settings.py)

# settings.py
LOGOUT_REDIRECT_URL = '/'  # 로그아웃 후 리다이렉트 될 경로 (보통 메인 페이지)

→ 로그인 때 설정한 LOGIN_REDIRECT_URL과 유사한 방식


4️⃣ 실행 확인 방법

  1. 서버 실행 후 로그인
  2. 상단에 로그아웃 버튼 확인
  3. 클릭 시 POST 요청으로 로그아웃 처리
  4. 메인 블로그 목록 페이지(/)로 이동

📌 터미널 로그에도 POST /accounts/logout/ 기록 확인 가능


✅ 요약 정리

항목 설명

구현 위치 blog_list.html 템플릿
조건 처리 request.user.is_authenticated 사용
요청 방식 POST, CSRF 토큰 필수
리다이렉트 설정 LOGOUT_REDIRECT_URL = '/'

💬 로그아웃 기능은 단순해 보여도 보안적으로 매우 중요합니다. Django의 인증 시스템을 통해 안전하게 처리하세요!

'Django' 카테고리의 다른 글

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

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 3-5 Django 로그아웃 기능 만들기
상단으로

티스토리툴바