반응형
Django Social Login은 대부분의 웹사이트에서 필수적이죠!!
Naver소셜로그인에 대해서 알아보도록 하겠습니다.
대부분이 쉽게 Django를 활용해서 소셜로그인 구현이 가능합니다.
1. 패키지 모듈 설치
pip install django-allauth
2. Settings.py에 설정 하기
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.messages',
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.naver',
)
SITE_ID = 1
AUTH_USER_MODEL = 'accounts.User'
3. urls.py에 설정
urlpatterns = [
path('accounts/', include('allauth.urls')),
]
4. 셋팅을 바꾸었으니 migrate를 해줍니다
$ python manage.py migrate
아래 주요 설정 값을 활용하시면 더 효율적인 로그인 기능을 활용할 수 있습니다.
주요 설정 값
- 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로 설정할 수 있다.
[ wikidocs 참조 ]
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = 'none'
SOCIALACCOUNT_AUTO_SIGNUP = False
ACCOUNT_SIGNUP_FORM_CLASS = accounts.forms.SignupForm
https://developers.naver.com/appinfo
이제 위에 들어가셔서 어플리케이션 등록하세요!!
반응형
'프로그래밍 > Django개발(MAC OS)' 카테고리의 다른 글
Django_ get_queryset()과 queryset에 대한 차이 정리 (0) | 2019.11.26 |
---|---|
Django_ values(), values_list(), flat 옵션 (0) | 2019.11.26 |
Pycharm 단축키 정리 (펌) (0) | 2019.11.21 |
Django AWS DB postgresql 연동하기 (0) | 2019.11.16 |
Django 장고 DB 설정 - Postgresql 설정하기 (0) | 2019.11.16 |