티스토리 뷰
로그아웃은 간단하다.
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/'이라고 지정을 해주면 된다.
'Web > Django' 카테고리의 다른 글
[Django]사용자인증관리_회원탈퇴 (0) | 2020.08.16 |
---|---|
[Django]base.html_최종 (31) | 2020.08.14 |
[Django]사용자인증관리_login, 쿠키와 세션, 캐쉬 (31) | 2020.08.13 |
[Django] views.py 완성코드 (CRUD, 댓글, like) (0) | 2020.08.05 |
[django] 프로젝트 만드는 순서 정리 (0) | 2020.08.02 |
- Total
- Today
- Yesterday
- pandas
- NextJS
- react autoFocus
- vuejs
- 클라우데라
- next.config.js
- mongoDB
- 자료구조
- DFS
- login
- BFS
- read_csv
- nextjs autoFocus
- Vue
- useHistory 안됨
- 자연어처리
- logout
- Deque
- Express
- Python
- error:0308010C:digital envelope routines::unsupported
- JavaScript
- django
- Queue
- TensorFlow
- UserCreationForm
- useState
- typescript
- react
- nodejs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |