Django-allauth 1. 설치

엄성호·2023년 1월 16일
0

Django

목록 보기
1/3
post-thumbnail

Django-allauth?

Django-allauth 문서
Django-allauth는 Django 어플리케이션에서 서드파티(소셜) 계정을 인증, 등록, 관리 할수 있는 라이브러리

왜 필요한가?

Django로 만든 웹에서 구글, 카카오, 네이버, 깃허브 등 소셜 계정을 통합관리하는 편리한 라이브러리
내가 만든 Django 웹에서 소셜 로그인 기능을 쉽고 빠르게 추가할 수 있다.

설치

  1. Django가 설치되어 있어야 함
  2. Python package Django-allauth 설치

    pip install django-allauth

  3. config/settings.py 파일에 다음 내용 추가
# Specify the context processors as follows:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                # Already defined Django-related contexts here

                # `allauth` needs this from django
                'django.template.context_processors.request',
            ],
        },
    },
]

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',
    ...
]

INSTALLED_APPS = [
    ...
    # The following apps are required:
    'django.contrib.auth',
    'django.contrib.messages',
    'django.contrib.sites',

    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    # ... include the providers you want to enable:
    # 사용할 부분만 추가하기    
    'allauth.socialaccount.providers.google',
    'allauth.socialaccount.providers.kakao',
    'allauth.socialaccount.providers.naver',
    ...
]

# 반드시 추가해야 함
# 관련된 오류가 생기면 숫자를 바꾸거나, 장고쉘을 사용하거나 DB에 저장된 값을 바꾸면 됨
SITE_ID = 1

# Provider specific settings
# 필요한 PROVIDER일 경우, 양식에 맞추어 작성
SOCIALACCOUNT_PROVIDERS = {
    'google': {
        # For each OAuth based provider, either add a ``SocialApp``
        # (``socialaccount`` app) containing the required client
        # credentials, or list them here:
        'APP': {
            'client_id': '123',
            'secret': '456',
            'key': ''
        }
    }
}
  1. config/settings.py 파일에 다음 내용 추가
urlpatterns = [
    ...
    path('accounts/', include('allauth.urls')),
    ...
]
  1. Django migrate 실행

    python manage.py migrate

  2. Django-allauth 문서 참고하여 소셜로그인 키를 발급받는다. 콜백 URI도 문서를 참고한다.
  3. Django 서버를 실행하고 admin page에 접속(e.g. http://localhost:8000/admin/)
    1. 소셜어플리케이션 +추가, 다음을 작성한다
      • 제공자: Provider 선택 (kakao)
      • 이름: 원하는 대로 작성
      • 클라이언트 아이디: 발급받은 키 작성
      • 비밀 키: 발급받은 키 작성 (kakao는 비밀 키가 없다)

여기까지 하면 기본 설치가 완료된다.
Django 서버를 실행하고 http://127.0.0.1/accounts/login/ 에 접속해서 다음과 같은 화면을 보면 성공이다!

Django-allauth에서 제공하는 페이지이기 때문에 내가 만든 웹페이지와 다른 모습이다.
다음에는 내가 만든 웹페이지에 연결하는 방법을 알아보자.

profile
개발자

0개의 댓글