Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Django의 Google 인증

<시간/>

많은 개발자 웹사이트에서 매우 편리한 Google 소셜 인증을 볼 수 있습니다. 이 기사에서는 Django Google 로그인 프로젝트를 만드는 방법을 살펴보겠습니다.

  • 먼저 https://console.cloud.google.com/apis/dashboard로 이동하여 프로젝트를 생성합니다.

  • Oauth 동의 화면으로 이동하여 화면을 생성하고 저장하고 계속합니다.

  • 자격 증명으로 이동하여 "자격 증명 생성"을 클릭한 다음 "OAuth 클라이언트 ID"를 클릭합니다.

  • 그런 다음 웹 응용 프로그램을 선택하고 이 두 URL을 추가하십시오 -

  • https://127.0.0.1:8000/
  • https://127.0.0.1:8000/accounts/github/login/callback/

이제 클라이언트 ID와 비밀 키를 받게 되며 파일에 안전하게 보관하십시오.

예시

Django 프로젝트와 앱을 만듭니다.

settings.py에서 -

SITE_ID = 1
LOGIN_REDIRECT_URL = "/"

INSTALLED_APPS = [
   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   "django.contrib.sites", # <--
   "allauth", # <--
   "allauth.account", # <--
   "allauth.socialaccount", # <--
   "allauth.socialaccount.providers.google",
   "googleauthentication" #this is my app name ,you can name your app anything you want
]
SOCIALACCOUNT_PROVIDERS = {
   'google': {
      'SCOPE': [
         'profile',
         'email',
      ],
      'AUTH_PARAMS': {
         'access_type': 'online',
      }
   }
}

#add this in the end of file
AUTHENTICATION_BACKENDS = (
   "django.contrib.auth.backends.ModelBackend",
   "allauth.account.auth_backends.AuthenticationBackend",
)

여기에서 리디렉션 URL을 정의했습니다. INSTALLED APP에서 인증에 사용할 중요한 백엔드를 정의했습니다. 그런 다음 로그인에 무엇을 사용해야 하는지 알려줄 소셜 계정 공급자를 정의했습니다(여기서는 Google을 사용합니다). 또한 어떤 사용자 데이터를 저장해야 하는지 정의했습니다.

이제 프로젝트의 url.py에서 , 다음을 추가하십시오 -

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
   path('admin/', admin.site.urls),
   path("accounts/", include("allauth.urls")), #most important
   path('',include("googleauthentication.urls")) #my app urls
]

여기에 추가하는 데 필요한 기본 경로를 추가했습니다. Google 로그인을 활성화하기 위한 allauth 라이브러리 경로입니다. 두 번째는 우리가 만든 앱 경로입니다.

앱의 url.py에서 -

from django.urls import path
from . import views
urlpatterns = [
   path('',views.home),
]

여기에서 URL을 설정합니다. 홈 URL에 대한 뷰를 렌더링했습니다.

view.py에서 -

from django.shortcuts import render

# Create your views here.
def home(request):
   return render(request,'home.html')

여기서는 단순히 프런트엔드를 렌더링했습니다.

템플릿 만들기 앱의 기본 디렉토리에 폴더를 만들고 home.html 파일을 추가합니다. 다음 내용으로 -

<!DOCTYPE html>
<html>
   <head>
      <title>Google Registration</title>
   </head>
   <body>
      {% load socialaccount %}
      <h1>My Google Login Project</h1>
      <a href="{% provider_login_url 'google'%}?next=/">Login with Google</a>
   </body>
</html>

여기에서 JS를 렌더링하고 allauth를 로드했습니다. 프론트엔드의 라이브러리. 에서 기본 Google 로그인 페이지를 설정하는 Google 로그인 페이지를 제공했습니다.

이제 터미널에서 다음 명령을 실행하십시오 -

python manage.py makemigrations
python manage.py migrate

다음으로 수퍼유저를 만듭니다. .

python manage.py createsuperuser

그런 다음 서버를 시작하고 관리자 패널로 이동합니다. 사이트로 이동하여 URL 이름과 표시 이름이 있는 사이트를 추가합니다. https://127.0.0.1:8000

소셜 애플리케이션으로 이동하여 애플리케이션을 추가합니다. 이전에 추가한 사이트 선택 -

Django의 Google 인증

그러면 Django 프로젝트에 Google이 인증 백엔드로 등록됩니다. 모든 것이 설정되었으므로 이제 출력을 확인할 수 있습니다.

출력

Django의 Google 인증