SoShin_
소신
SoShin_
전체 방문자
오늘
어제
  • 분류 전체보기
    • Study
      • HTML | CSS
      • JavaScript
      • Django
      • Python
      • Flask
      • Git
      • Project
      • 이것저것
      • 코딩테스트
      • NestJS
    • Review
      • Book
      • Movie & Drama

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Django 유효성 검증
  • 장고 제네릭뷰
  • db
  • MongoDB
  • allauth
  • 자바스크립트
  • 장고 allauth
  • 영화추천
  • JavaScript
  • 플라스크
  • flask orm
  • openpyxl
  • node.js
  • 위도경도
  • 영화리뷰
  • 파이썬
  • 장고 유저기능
  • Django
  • js
  • 코딩테스트
  • KakaoAPI
  • 유저기능
  • 문제풀이
  • SQLite
  • orm
  • FLASK
  • Django allauth
  • Python
  • 장고
  • SQLAlchemy

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
SoShin_

소신

Study/Django

[Django] 장고 유저 기능 구현하기 #6 (이메일로 로그인 하기 기능 구현)

2021. 12. 17. 19:59
반응형

2021.12.15 - [Study/Django] - [Django] 장고 유저 기능 구현하기 #5 ( 페이지에서 로그인 로그아웃 구현)

 

[Django] 장고 유저 기능 구현하기 #5 ( 페이지에서 로그인 로그아웃 구현)

2021.12.15 - [Study/Django] - [Django] 장고 유저 기능 구현하기 #4 ( 로그인 및 회원가입 후 Redirect 페이지 변경) [Django] 장고 유저 기능 구현하기 #4 ( 로그인 및 회원가입 후 Redirect 페이지 변경) 2021..

programmers-sosin.tistory.com

이번 게시글에서는 지금까지 로그인을 할 때, username으로 로그인을 했었지만 요즘 대부분의 로그인이 email로 한다는 것을 보고, email로 로그인을 하는 기능을 구현해보겠습니다.


Email로 로그인기능 구현하기

#settings.py

ACCOUNT_AUTHENTICATION_METHOD = 'email'  # 로그인시 username 이 아니라 email을 사용하게 하는 설정
ACCOUNT_EMAIL_REQUIRED = True  # 회원가입시 필수 이메일을 필수항목으로 만들기
ACCOUNT_USERNAME_REQUIRED = False  # USERNAME 을 필수항목에서 제거

Django의 allauth를 사용한다면 정말 쉽게 단 3줄만으로 email 로그인 기능을 구현할 수 있습니다.]

각 부분이 뜻하는 것은 주석과 같고, 좀 더 세밀하게 알아보겠습니다.

 

ACCOUNT_AUTHENTICATION_METHOD 는 로그인 인증 방법으로 username, email, username_email을 지정할 수 있습니다.  email로 설정할 때는 ACCOUNT_EMAIL_REQUIRED = True 옵션을 같이 설정해야 합니다.

ACCOUNT_AUTHENTICATION_METHOD 는 로그인 인증 방법으로 
username, email, username_email을 지정할 수 있습니다.  
email로 설정할 때는 ACCOUNT_EMAIL_REQUIRED = True 옵션을 같이 설정해야 합니다.

주요 설정 값

  • ACCOUNT_AUTHENTICATION_METHOD: 로그인 인증 방법으로 username, email, username_email을 지정할 수 있다. email로 설정할 때는 ACCOUNT_EMAIL_REQUIRED = True 옵션을 같이 설정해야 한다.

 

  • ACCOUNT_EMAIL_REQUIRED: 회원 가입할 때 이메일 주소 입력 필수 여부이다. 디폴트 값은 False이므로 이메일 주소를 입력하지 않아도 가입된다.

 

  • ACCOUNT_USERNAME_REQUIRED: 회원 가입할 때 username 입력 필수 여부이다. 디폴트 값은 True이므로 반드시 ACCOUNT_AUTHENTICATION_METHOD를 통해 이메일로 로그인으로 설정하더라도 username을 입력해야 가입된다.

 

  • ACCOUNT_EMAIL_VERIFICATION: 이메일 유효성 인증이 필요한지 여부이다. 'mandatory', 'optional', 'none' 값을 지정할 수 있으며 'mandatory'는 회원가입 후 이메일 주소를 인증하지 않으면 회원 가입하더라도 로그인할 수 없다. 'optional'은 인증 이메일은 발송되지만 인증하지 않아도 로그인할 수 있고 'none'은 인증 메일을 보내지도 않고 로그인할 수 있다.

 

  • ACCOUNT_LOGIN_ATTEMPTS_LIMIT: 지정된 횟수(기본값=5) 만큼 로그인 실패할 경우 ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT 설정값으로 지정한 시간(단위=초)만큼 로그인할 수 없다. allauth 로그인 뷰에서 적용되고 Django 기본 관리자 로그인 뷰에는 적용되지 않는다.

 

  • ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT: 로그인 실패 시 다시 로그인할 수 없는 시간(기본값=300초)이다.

 

  • ACCOUNT_USER_MODEL_USERNAME_FIELD: 커스텀 사용자 모델을 사용하는 경우 아이디 필드의 이름이 username이 아닌 다른 이름일 경우 지정한다. 만약 None으로 지정할 경우 allauth에서 username과 관련된 모든 기능을 사용하지 않는다. 이 경우 ACCOUNT_USERNAME_REQUIRED 값 또한 반드시 False로 지정해야 한다.

 

  • ACCOUNT_USER_MODEL_EMAIL_FIELD: 커스텀 사용자 모델을 사용하는 경우 이메일 필드의 이름이 기본값 email이 아닌 다른 이름일 경우 지정한다. 만약 None으로 지정할 경우 allauth에서 email과 관련된 모든 기능을 사용하지 않는다. 이 경우 ACCOUNT_EMAIL_REQUIRED 값 또한 반드시 False로 지정해야 한다.

 

  • ACCOUNT_SIGNUP_FORM_CLASS: 회원가입 폼 클래스를 지정하고 해당 클래스는 def signup(self, request, user) 메소드를 반드시 구현해야 한다.

 

  • SOCIALACCOUNT_AUTO_SIGNUP: 디폴트 값은 True이며 SNS 공급자에서 넘겨받은 정보를 가지고 바로 회원 가입시킨다. 부가정보를 입력받기 위해 False로 설정할 수 있다.

 

반응형

'Study > Django' 카테고리의 다른 글

[Django] 장고 유저 기능 구현하기 #8 (닉네임 필드 추가하기)  (0) 2021.12.18
[Django] 장고 유저 기능 구현하기 #7 (로그인 기억하기)  (0) 2021.12.17
[Django] 장고 유저 기능 구현하기 #5 ( 페이지에서 로그인 로그아웃 구현)  (1) 2021.12.15
[Django] 장고 유저 기능 구현하기 #4 ( 로그인 및 회원가입 후 Redirect 페이지 변경)  (0) 2021.12.15
[Django] 장고 유저 기능 구현하기 #3 (all-auth 사용 셋팅)  (0) 2021.12.15
    'Study/Django' 카테고리의 다른 글
    • [Django] 장고 유저 기능 구현하기 #8 (닉네임 필드 추가하기)
    • [Django] 장고 유저 기능 구현하기 #7 (로그인 기억하기)
    • [Django] 장고 유저 기능 구현하기 #5 ( 페이지에서 로그인 로그아웃 구현)
    • [Django] 장고 유저 기능 구현하기 #4 ( 로그인 및 회원가입 후 Redirect 페이지 변경)
    SoShin_
    SoShin_
    직접 쓰는 개발 블로그

    티스토리툴바