반응형
2021.12.15 - [Study/Django] - [Django] 장고 유저 기능 구현하기 #2 ( 유저 모델 정의하기)
all-auth는 장고에 기본으로 제공되는 패키지가 아니기 때문에 외부에서 직접 받아와야 한다.
사용 세팅은 allauth 공식문서를 통해 진행하였다!
allauth 셋팅하기!
1. allauth 설치하기
pip install django-allauth
2. settings.py에 설정 추가하기
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'coplate',
'allauth',
'allauth.account',
'allauth.socialaccount',
# 만약 소셜로그인이 필요할 경우 allauth 문서 참조해서 추가하기
]
AUTHENTICATION_BACKENDS = [
# Needed to login by username in Django admin, regardless of `allauth`
'django.contrib.auth.backends.ModelBackend',
# `allauth` specific authentication methods, such as login by e-mail
'allauth.account.auth_backends.AuthenticationBackend',
]
SITE_ID = 1
# Email settings
# allauth가 제공하는 이메일 인증이나 비밀번호 찾기 기능을 활용하려면 이메일을 보낼 수 있어야 하는데 이때, 이메일을 어떻게 보내야할지 설정하는게
# EMAIL_BACKEND 기능입니다. 지금 설정값은 터미널 콘솔로 이메일을 보내게 설정해둔것 입니다. [ 나중에 변경 예정 ]
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
위 코드 중 'django.contrib.sites'는 어떤 기능을 여러 웹사이트에서 사용할 수 있게 해 줍니다.
즉 비슷한 콘텐츠나 기능을 가진 웹사이트가 여러 개 필요할 때는 장고 프로젝트 하나로 여러 사이트를 운영할 수 있습니다.
이때 SITE_ID가 그 각각의 사이트의 ID입니다.
현재 만들 사이트는 하나 이므로 SITE_ID = 1로 설정해둡니다.
# urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('allauth.urls')),
]
이때, 공식문서에서는 아래 코드처럼 나와 있지만 아래 코드처럼 작성할 시, url을 작성할 때 path('accounts/login') 등 길게 작성해야 하므로 path('')로 설정해두었다!
# allauth 공식문서
urlpatterns = [
...
path('accounts/', include('allauth.urls')),
...
]
그 후 앱을 여러가지 추가했기 때문에 migrate 하는 것을 잊지 말기!
SITE_ID가 궁금해서 더 알아본 자료들!
SITE_ID의 정수 값은django_site 데이터베이스 테이블에 있는 현재 사이트의 값이다. django_site 테이블에 여러 개의 사이트를 등록하고 그중 하나를 지정하는 역할을 한다.
이때, SITE_ID 값을 지정해주지 않으면 아래와 같은 오류가 발생할 수 있으니 주의해야 한다.
RuntimeError: Model class django.contrib.sites.models.Site doesn’t declare an explicit app_label and isn’t in an application in INSTALLED_APPS
SITE_ID에 대해 더 자세한 내용을 알고 싶으면 아래 링크를 참조해보자!
반응형
'Study > Django' 카테고리의 다른 글
[Django] 장고 유저 기능 구현하기 #5 ( 페이지에서 로그인 로그아웃 구현) (1) | 2021.12.15 |
---|---|
[Django] 장고 유저 기능 구현하기 #4 ( 로그인 및 회원가입 후 Redirect 페이지 변경) (0) | 2021.12.15 |
[Django] 장고 유저 기능 구현하기 #2 ( 유저 모델 정의하기) (1) | 2021.12.15 |
[Django] 장고 유저 기능 구현하기 #1 (allauth와 contrib.auth의 차이) (0) | 2021.12.14 |
[Django] Django 클래스형 뷰 ( Generic View- DeleteView) # 6 (0) | 2021.12.14 |