본문 바로가기
web/Django

[django] 소셜 로그인 (구글/페이스북)

by 몽구스_ 2020. 7. 24.
728x90

 

 

pip install django-allauth

먼저 설치

 

 


settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.sites',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blogapp.apps.BlogappConfig',
    'portfolio.apps.PortfolioConfig',

    
    #allauth
    'allauth',
    'allauth.account',
    'allauth.socialaccount',

    #providers
    'allauth.socialaccount.providers.google',
    'allauth.socialaccount.providers.facebook',
]
AUTHENTICATION_BACKENDS = (

    'django.contrib.auth.backends.ModelBackend',

    'allauth.account.auth_backends.AuthenticationBackend',
)

SITE_ID = 1

LOGIN_REDIRECT_URL = '/'

 


 

 

urls.py

 

path('accounts/', include('allauth.urls')),

추가

 


 

base.html

 

{% load socialaccount %}

{% providers_media_js %}

맨 첫줄에 넣어줌

 

 

 

	{% if user.is_authenticated %}
            <li class="nav-item">
              <a class="nav-link" href="/accounts/logout" tabindex="-1" aria-disabled="true">Logout</a>
              <a href="/accounts/logout">Logout</a>
            </li>
            <p class="log-text1">{{user.username}} 님이 로그인 중</p>

            {% else %}
            <li class="nav-item">
              <a class="nav-link" href="{% provider_login_url 'google' %}" tabindex="-1" aria-disabled="true">Google Login</a>
              <a class="nav-link" href="{% provider_login_url 'facebook' %}" tabindex="-1" aria-disabled="true">Facebook Login</a>
              <p class="log-text2">로그인이 필요합니다</p>
            </li>

            {% endif %}

 


 

구글로그인 설정

 

 

https://console.developers.google.com/apis

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

 

고객ID랑 시크릿키 두개 복사한다.

 

 

 

 

 

페이스북로그인 설정

 

https://developers.facebook.com/apps

 

Facebook에 로그인 | Facebook

메뉴를 열려면 alt + / 키 조합을 누르세요

www.facebook.com

 

새앱 만들고 똑같이 url http://127.0.0.1:8000 로 설정한다.

ID, 시크릿키 복사

 

--------------------------------------------------------

 

여기까지 했으면 다시 python manage.py runserver로 창열고 admin페이지 들어가서 로그인한다.

 

 

 

Social applications로 들어가서 추가해준다. (오른쪽 위 버튼)

 

 

 

 

 

settings.py에서 providers에 google을 넣었다면 여기서 나타난다.

그럼 그걸로 설정해주고 아까 복사한 ID와 시크릿키를 붙여넣고 맨밑에 sites까지 선택해준다.

Save누르면 완료.

 

 

댓글