자격증 & 문제풀이/Django-Project

[Django] 로그인 권한 주기

YSY^ 2020. 7. 19. 21:29

이제 회원가입과 로그인 틀을 만들었으니 로그인에 대한 권한을 줄 차례입니다.

로그인이 안되었다면 로그인과 회원가입 버튼이 나타나게하며

로그인이 되었다면 회원가입과 로그인 버튼이 사라지게하며, 로그인 버튼이 로그아웃으로 바뀌어야 합니다.

 

이를 위해서 먼저 config의 settings.py에서 추가해주어야할 것이 있습니다.

#config.settings.py
# User enroll
AUTH_USER_MODEL = 'accounts.CustomUser'
#로그인 성공시 이동할 url
LOGIN_REDIRECT_URL = "/"
#로그인 해야 요청할 수 있는 view를 로그인 안하고 요청했을 때 이동할 URL 
LOGIN_URL = '/accounts/login'
#로그아웃 성공시 이동할 url
LOGOUT_REDIRECT_URL = '/'

 

이제 외부에 있는 base.html을 만져줄 차례입니다.

user가 접속되지 않았을때(is_authenticated)와 그렇지 않은 경우로 나누어 줍니다.

인증되지 않았을 때 로그인과 회원가입 버튼이 뜨게하며 인증되었을 경우 로그아웃 버튼을 띄우도록 합니다.

<!-- templates/base.html-->
{% if not user.is_authenticated %}
	<ul class='nav navbar-nav navbar-right'>
		<a class="btn btn-warning my-2 my-sm-0" href = '/accounts/login' style="font-weight: bold">로그인</a>
	</ul>
	&nbsp;&nbsp;&nbsp;&nbsp;
	<ul class='nav navbar-nav navbar-right'>
		<a class="btn btn-outline-warning my-2 my-sm-0" href = '/accounts/join'>회원가입</a>
	</ul>
	&nbsp;&nbsp;&nbsp;&nbsp;
{% else %}
	<ul class='nav navbar-nav navbar-right'>
		<a class="btn btn-warning my-2 my-sm-0" href='/accounts/logout' style="font-weight: bold">로그아웃</a>
	</ul>
	&nbsp;&nbsp;&nbsp;&nbsp;
{% endif %}

 

계정이 인증되지 않았을 경우

로그인과 회원가입 버튼이 떠있다.

계정이 인증 된 경우

로그아웃 버튼으로 변경되었다.

728x90
반응형

'자격증 & 문제풀이 > Django-Project' 카테고리의 다른 글

[Django] Base.html  (0) 2020.07.19
[Django] Home.html  (0) 2020.07.19
[Django] 한증막.GG 사이트 설명  (0) 2020.07.19
[Django] 한증막.GG는 무엇인가  (0) 2020.07.19
[Django] 회원가입과 로그인  (0) 2020.07.19