티스토리 뷰
로그아웃은 간단하다.
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
- login
- nextjs autoFocus
- typescript
- Express
- error:0308010C:digital envelope routines::unsupported
- 클라우데라
- 자료구조
- logout
- UserCreationForm
- read_csv
- Queue
- NextJS
- vuejs
- useState
- TensorFlow
- BFS
- pandas
- nodejs
- react
- 자연어처리
- DFS
- Python
- next.config.js
- JavaScript
- react autoFocus
- Vue
- Deque
- mongoDB
- django
- useHistory 안됨
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |