Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การตรวจสอบสิทธิ์ Google ใน Django


ในเว็บไซต์นักพัฒนาซอฟต์แวร์หลายแห่ง เราจะได้เห็นการรับรองความถูกต้องทางสังคมของ Google ซึ่งมีประโยชน์มาก ในบทความนี้ เราจะมาดูวิธีสร้างโครงการเข้าสู่ระบบ Django Google

  • ขั้นแรก ไปที่ https://console.cloud.google.com/apis/dashboard และสร้างโครงการ .

  • ไปที่หน้าจอยินยอม Oauth และสร้างหน้าจอแล้วบันทึกและดำเนินการต่อ

  • ไปที่ข้อมูลรับรองแล้วคลิก "สร้างข้อมูลรับรอง" จากนั้นคลิก "รหัสไคลเอ็นต์ OAuth":

  • จากนั้นเลือกเว็บแอปพลิเคชัน และเพิ่ม URL ทั้งสองนี้ -

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

ตอนนี้ คุณจะได้รับรหัสลูกค้าและรหัสลับ เก็บไว้ในไฟล์ของคุณอย่างปลอดภัย

ตัวอย่าง

สร้างโปรเจ็กต์ 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 เปลี่ยนเส้นทาง ในแอปที่ติดตั้ง เราได้กำหนดแบ็กเอนด์ที่สำคัญที่เราจะใช้สำหรับการตรวจสอบสิทธิ์ จากนั้นเรากำหนดผู้ให้บริการบัญชีโซเชียลซึ่งจะบอกว่าเราควรใช้อะไรในการเข้าสู่ระบบ (ในที่นี้เราใช้ Google) นอกจากนี้เรายังกำหนดว่าควรจัดเก็บข้อมูลใดของผู้ใช้

ตอนนี้ใน urls.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
]

ที่นี่ เราได้เพิ่มพาธเริ่มต้นที่จำเป็นในการเพิ่ม เป็นเส้นทางไลบรารี allauth สำหรับเปิดใช้งานการเข้าสู่ระบบ Google อันที่สองคือเส้นทางของแอปที่เราสร้างขึ้น

ใน urls.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

จากนั้นเริ่มเซิร์ฟเวอร์และไปที่แผงผู้ดูแลระบบ ไปที่ Sites และเพิ่มเว็บไซต์ที่มีชื่อ url และชื่อที่แสดง:https://127.0.0.1:8000

ไปที่แอปพลิเคชันโซเชียลและเพิ่มแอปพลิเคชัน เลือกไซต์ที่คุณเพิ่มก่อนหน้านี้ -

การตรวจสอบสิทธิ์ Google ใน Django

การดำเนินการนี้จะลงทะเบียน Google ในโครงการ Django ของคุณเป็นแบ็กเอนด์การตรวจสอบสิทธิ์ ทุกอย่างได้รับการตั้งค่าแล้ว ตอนนี้คุณสามารถดำเนินการตรวจสอบผลลัพธ์ได้

ผลลัพธ์

การตรวจสอบสิทธิ์ Google ใน Django