장고에서 소셜인증하기 - 1. 설치

개요

네이버 아이디를 통해 장고 어플리케이션에 인증을 처리합니다.
적용할 패키지는 django-allauth로 인증, 등록, 계정 관리 및 타사 (소셜) 계정 인증을 처리할 수 있습니다.

총 3회에 걸쳐 소개합니다.

  1. 파이썬 패키지 설치
  2. 네이버 오픈API 이용 신청
  3. 장고에 소셜 어플리케이션 등록

사용환경

  • Python 2.7, 3.3, 3.4, 3.5 or 3.6
  • Django (1.11+)
  • 네이버 오픈API 앱 등록 정보

파이썬 패키지 설치

장고

장고 프로젝트 또는 가상환경에서 파이썬 패키지를 설치합니다.

pip install django-allauth

settings.py

  • 중의. INSTALLED_APPS에 'django.contrib.sites'가 있어야 합니다.
# 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',
    # 네이버 외에 다른 오픈아이디 제공자를 추가하려면 [여기](https://tinyurl.com/y6tsrngg)에서 찾아 추가하면 됩니다.
    'allauth.socialaccount.providers.naver',
)

SITE_ID = 1

LOGIN_REDIRECT_URL = '/'

urls.py

urlpatterns = [
    ...
    url(r'^accounts/', include('allauth.urls')),
    ...
]

설치 후

데이터베이스 테이블을 생성합니다.

./manage.py migrate

추가 작업이 남아 있어 네이버 오픈아이디로 로그인을 할 수 없지만 장고의 기본 로그인과 로그아웃은 동작합니다.

+ Recent posts