반응형
2021.12.15 - [Study/Django] - [Django] 장고 유저 기능 구현하기 #4 ( 로그인 및 회원가입 후 Redirect 페이지 변경)
이전 글에서는 로그인과 회원가입을 한 후, index 페이지로 Redirect 되게 해 보았는데요.
이때 만약 로그인이 되어있다면 로그아웃을 따로 해주기 위해 admin에 들어가거나 login을 위해 login에 들어가서 따로 해야 하는 불편함이 있었습니다.
이것을 고치기 위해 index 페이지에 로그인, 회원가입, 로그아웃 할 수 있게 만들어보겠습니다!
현재 로그인되어 있는 유저에게 접근하려면 View에서는 request.user Template에서는 {{ user }}로 접근할 수 있습니다.
# views.py
def index(request):
print(request.user)
return render(request, 'coplate/index.html')
즉 위처럼 코드가 작성되어 있다면 터미널에서 현재 로그인되어 있는 유저의 id가 출력됩니다.
이때, 현재 로그인이 되어있는지를 확인하기 위해서는 is_authenticated를 사용하면 됩니다.
is_authenticated는 로그인이 되어있다면 True를 로그인이 안되어있다면 False를 반환합니다.
이를 이용해서 만들어보겠습니다!
# index.html
<nav>
{% if user.is_authenticated %}
<a href="{% url 'account_logout' %}">로그아웃</a>
{% else %}
<a href="{% url 'account_login' %}">로그인</a>
<a href="{% url 'account_signup' %}">회원가입</a>
{% endif %}
</nav>
<h1>홈페이지</h1>
{% if user.is_authenticated %}
<p>안녕하세요!{{ user }}님</p>
{% else %}
<p>로그아웃된 상태입니다!</p>
{% endif %}
위처럼 작성해주면 원하는 기능을 가진 index페이지를 완성할 수 있는데요.
이때 5,7,8번째 줄의 url은 설정한 적이 없는데 어떻게 사용할 수 있는 걸까요?
allauth는 이런 url을 미리 설정해놓았는데요. 이를 확인하려면 아래 링크를 들어가면 확인할 수 있습니다.
반응형
'Study > Django' 카테고리의 다른 글
[Django] 장고 유저 기능 구현하기 #7 (로그인 기억하기) (0) | 2021.12.17 |
---|---|
[Django] 장고 유저 기능 구현하기 #6 (이메일로 로그인 하기 기능 구현) (1) | 2021.12.17 |
[Django] 장고 유저 기능 구현하기 #4 ( 로그인 및 회원가입 후 Redirect 페이지 변경) (0) | 2021.12.15 |
[Django] 장고 유저 기능 구현하기 #3 (all-auth 사용 셋팅) (0) | 2021.12.15 |
[Django] 장고 유저 기능 구현하기 #2 ( 유저 모델 정의하기) (1) | 2021.12.15 |