반원 블로그

django - 로그아웃 처리 본문

2018~/Django 개인 공부 정리

django - 로그아웃 처리

반원_SemiCircle 2019. 9. 6. 19:43

생각보다 간단하다. 현재 requests.session['user']의 값으로 로그인 상태를 확인하니 이 값을 없애주면 된다.

1. 이번엔 V에 해당하는 곳(Fuser의 views.py)에서 logout부터 만들어보자.

# Create your views here.
def logout(request):
    if request.session['user'] : #로그인 중이라면
        del(request.session['user'])

    return redirect('/') #홈으로

2. T 를 해야될 차례인데, 로그아웃은 전용페이지가 따로 없으므로 스킵

3. Fuser 앱 폴더의 urls.py에 url 패턴을 추가해주자.

이제 127.0.0.1:8000/fuser/logout 으로 접속하면 로그아웃되고 /로 이동(리다이렉트)된다.

from django.urls import path
from . import views

urlpatterns = [
    path('register/', views.register),
    path('login/', views.login),
    path('logout/', views.logout),
]

의미가 이상하긴 하지만, 로그인 안되었을 때 보이는 '로그인 성공'이라고 문구가 나오는 페이지가 보인다.

웹 브라우저 쿠키에는 세션값이 존재는 한다. 하지만 내부의 값이 바뀌는 지 개발자도구(Firefox 용)을 켜고 로그인/로그아웃을 하면 값이 바뀌었다는 의미로 잠깐 색이 깜빡거린다.

Comments