티스토리 뷰

반응형

로그아웃은 간단하다.

urls.py

urlpatterns = [

    path('signup/', views.signup, name='signup'),

    path('login/', views.login, name='login'),

    path('logout/', views.logout, name='logout'),

    path('<int:pk>/', views.detail, name='detail'),

]

 

views.py

from django.contrib.auth import logout as auth_logout

def logout(request):

    auth_logout(request)

    return redirect('articles:index')

 

 

 

로그인을 해야 글 작성이 가능하게 만들자.

우리는 앞에서 로그인 된 상태에서 회원가입페이지나 로그인 페이지로 못들어 오게 하려고 if request.user.is_authenticated를 사용했다. 이러한 방식처럼 함수안에 내용을 if조건문을 쓰고 else에 redirect를 넣어서도 가능하지만 우리는 아래와 같이 더 좋은 방법을 사용한다.

 

views.py

from django.contrib.auth.decorators import login_required

from django.contrib.auth import logout as auth_logout

@login_required

def logout(request):

    auth_logout(request)

    return redirect('articles:index')

 

로그인을 안 한체로 로그아웃을 하면 로그인 창으로 자동이동

 

@login_required정리

1. 로그인 경로로 가게한다.

2. 그 후 next 파라미터를 활용할 수 있는 url로 만들어 준다(login게시물에서 확인)

즉, 로그인이 필요한 상황에서는 반드시 활용 해 줘야한다.

 

@login_required의 추가설명

공식문서를 찾아보면 login_URL은 settings.py 내부에 default값(기본값)으로 '/accounts/login/' 이라고 설정이 되어있다. 이설정에 따라 login url이 온거다. # LOGIN_URL = '/accounts/login/' # login_required

내가 만약, '/accounts/signin/'으로 url을 설정했다면, settings.py 하단에 LOGIN_URL='/accounts/signin/'이라고 지정을 해주면 된다.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함