Ismerje meg, hogyan hozhat létre biztonságos bejelentkezési rendszert közösségimédia-fiókokkal a Django-ban az OAuth használatával.

A közösségi hitelesítés egy módja annak, hogy jelszavak használata helyett közösségi fiókon keresztül erősítsék meg a személyazonosságot. A webfejlesztés során mindig hasznos a felhasználók jelszavak nélküli hitelesítése. Így olyan közösségi alkalmazásokon keresztül tudnak bejelentkezni, mint a Google, a Twitter vagy a GitHub.

A közösségi hitelesítés engedélyezése nagyszerű módja annak, hogy növelje alkalmazása biztonságát azáltal, hogy csökkenti a jelszavakkal kapcsolatos gyakori biztonsági rések kockázatát. Ezenkívül javítja az alkalmazás felhasználói élményét, mivel a felhasználóknak nem kell sok jelszót megjegyezniük.

Felhasználó hitelesítés a Django-ban

A Django alapértelmezett hitelesítési rendszert biztosít a fejlesztők számára. Ez a hitelesítési rendszer azonban hagyományos hitelesítést használ, amely magában foglalja az adatok, például a felhasználónév, e-mail cím, jelszó, keresztnév és vezetéknév manuális gyűjtését.

instagram viewer

Tervezésénél fogva a Django hitelesítési rendszere nagyon általános, és nem nyújt sok olyan funkciót, amelyet a legtöbb webes hitelesítési rendszer ma használ. Ennek kiegészítésére érdemes harmadik féltől származó csomagokat használni, például a django-allauth csomag.

Az OAuth engedélyezése a Django-ban

A felhasználók hitelesítéséhez az OAuth használatával egy Django alkalmazásban használhatja a Django nevű csomagot django-allauth.

A Django Allauth egy olyan csomag, amely kezeli a Django projekt hitelesítését, regisztrációját, fiókkezelését és harmadik féltől származó (közösségi) fiók hitelesítését. A következő lépések elvezetik Önt a Django Allauth beállításához a Django projekthez.

1. lépés: Telepítse és állítsa be a Django-Allauth-t

Ha még meg kell tenned, hozzon létre egy virtuális környezetet és telepítse django-allauth pip-en keresztül:

pip install django-allauth

Ne feledje, hogy a működéshez Python 3.5 vagy újabb és Django 2.0 vagy újabb verziót kell használnia.

2. lépés: Adja hozzá a szükséges alkalmazásokat a Django for Django-Allauthhoz

Telepítés után django-allauth, nyissa meg settings.py fájlt, és adja hozzá a következő alkalmazásokat INSTALLED_APPS lista:

INSTALLED_APPS = [


Add your other apps here

# Djang Allauth configuration apps
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
]

Íme néhány megjegyzés a fenti alkalmazásokkal kapcsolatban:

  • A allauth.socialaccount Az alkalmazás lehetővé teszi a felhasználók számára, hogy olyan közösségi alkalmazásokon keresztül jelentkezzenek be, mint az X (korábban Twitter), az Instagram, a GitHub és mások.
  • A django.contrib.sites Az alkalmazás egy beépített Django keretrendszer, amelyre szükség van django-allauth dolgozni. Az alkalmazás lehetővé teszi több webhely kezelését és megkülönböztetését egyetlen Django projekten belül. Megértheti, hogyan működik, ha hivatkozik a Django dokumentáció.

3. lépés: Határozza meg projektje hitelesítési háttérprogramjait

A következő lépés annak meghatározása, hogyan szeretné hitelesíteni a felhasználókat. Ezt úgy teheti meg, hogy konfigurálja a AUTHENTICATION_BACKENDS a tiédben settings.py fájlt. Mert django-allauth, ezeket kell hozzáadni:

AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]

A fenti kódrészlet két hitelesítési háttérprogramot határoz meg:

  1. Az első a Django által használt alapértelmezett. Ez lehetővé teszi az adminisztrátor számára, hogy a django-allauth konfigurációjától függetlenül bejelentkezzen az adminisztrációs panelbe.
  2. A második a hitelesítési háttérrendszert határozza meg django-allauth.

4. lépés: Adja hozzá webhelyazonosítóját

A beállításfájlban fel kell vennie a webhely azonosítóját. Íme egy példa:

SITE_ID = 1

Alapértelmezés szerint van egy oldal, melynek neve example.com az adminisztrációs panelen. Dönthet úgy, hogy módosítja ezt a webhelyet, vagy hozzáad egyet magának. Mindkét esetben jelentkezzen be az adminisztrációs panelre, és lépjen a Webhelyek kb.

Egy Django webhely webhelyazonosítójának lekéréséhez nyissa meg a webhelyét Parancssori interfész (CLI) és futtasd ezt a parancsot:

python manage.py shell

Ezután írja be ezt a szkriptet a Python shellbe:

from django.contrib.sites.models import Site

current_site = Site.objects.get_current()
site_id = current_site.id
site_name = current_site.name
print("Site ID:", site_id)
print("Site Name:", site_name)

A fenti kód kinyomtatja a webhely nevét és azonosítóját.

5. lépés: Konfigurálja az URL-eket

A projektedben urls.py fájlhoz konfigurálja az URL-mintát django-allauth. Így kell kinéznie:

from django.urls import path, include

urlpatterns = [
# Djang-allauth url pattern
path('accounts/', include('allauth.urls')),
]

Ezzel a beállítással elindíthatja a fejlesztői kiszolgálót, és oda navigálhat http://127.0.0.1:8000/accounts/. Ha van DEBUG állítva Igaz, akkor látnia kell a számára elérhető URL-minták listáját django-allauth.

Ha megtette a fentieket, projektjének készen kell állnia a közösségi hitelesítésre.

A Google bejelentkezés/regisztráció megvalósítása a Django alkalmazásban

A beállítás után django-allauth, akkor készen kell állnia arra, hogy felhasználói hitelesítsék magukat közösségi fiókjaikkal, például a Google-lal.

1. lépés: Regisztrálja közösségi fiók szolgáltatóját a telepített alkalmazásaiban

A tiédben settings.py fájlt, hozzá kell adnia a közösségi fiók szolgáltatóját INSTALLED_APPS. Ebben az esetben a Google. További lehetőségek az Instagram, X stb.

INSTALLED_APPS = [


Add your other apps here

# Social account provider (google)
'allauth.socialaccount.providers.google',
]

2. lépés: Hozza létre ügyfél-azonosítóját és titkos kulcsát a Google-on

A lépés végrehajtásához létre kell hoznia egy Google-fiókot. Ha megtette, kövesse az alábbi lépéseket:

  1. Irány a Google Cloud konzol új projekt létrehozásához. Először kattintson az alábbi képen látható legördülő menüre:
  2. Ezután kattintson a gombra ÚJ PROJEKT:
  3. Adja meg a projekt nevét, majd kattintson a gombra TEREMT gomb:
  4. Ha kiválasztotta a projektet, kattintson a gombra a hamburger menü. Válassza ki API-k és szolgáltatások, akkor Hitelesítő adatok:
  5. Ezután kattintson a feliratra BEJELENTÉSI KÉPERNYŐ KONFIGURÁLÁSA és válassza ki Külső:
  6. A következő oldalon adja meg az alkalmazás nevét, és adjon meg egy e-mailt, ahol szükséges. Néhány testreszabás érdekében felfedezheti a konfigurációkat is. Ha elkészült, kattintson a gombra MENTÉS ÉS FOLYTATÁS.
  7. A bal oldali menüben válassza a lehetőséget Hitelesítő adatok. Ezt követően kattintson a gombra HITELESÍTÉSI ADATOK LÉTREHOZÁSA és válassza ki OAuth-ügyfélazonosító.
  8. Ezután válassza ki a Alkalmazás típusa és adjon meg egy nevet. Ehhez az oktatóanyaghoz a Alkalmazás típusa lesz webalkalmazás.
  9. Ezután adja hozzá az URI-kat a Engedélyezett JavaScript eredet és Engedélyezett átirányítási URI-k. A webhely gazdagépének a JavaScript-eredetűnek kell lennie, és a rendszer a hitelesítés után átirányítja a felhasználókat az átirányítási URI-ra. Az átirányítási URI-nak általában tartalmaznia kell a gazdagép neve/accounts/google/login/callback/. Fejlesztési módban ez lesz: http://127.0.0.1:8000/accounts/google/login/callback/. Kattintson TEREMT amikor egyszer kész.
  10. A hitelesítési adatok létrehozása után másolhatja a saját Ügyfélazonosító vagy Ügyfél titka biztonságos helyre, vagy töltse le őket JSON-fájlként.

3. lépés: Adja hozzá ügyfél-azonosítóját és titkos kulcsát a Django alkalmazáshoz

A szükséges hitelesítő adatok létrehozása után navigáljon ide http://127.0.0.1:8000/admin, válassza ki Társadalmi alkalmazások, és hozzon létre egy új közösségi alkalmazást. Kövesse az alábbi lépéseket új közösségi alkalmazás létrehozásához:

  1. Adjon hozzá egy szolgáltatót. A szolgáltató arra az alkalmazásra utal, amellyel hitelesíti a felhasználót. Ebben az esetben a Google, egy másik esetben a Snapchat.
  2. Adja meg az új közösségi alkalmazás nevét. Győződjön meg róla, hogy ésszerű név
  3. Illessze be a Ügyfélazonosító a Google-ról másoltad ki.
  4. A Titkos kulcs, illessze be a Ügyfél titka a Google-ról másoltad ki.
  5. A Kulcs mező nem vonatkozik a Google hitelesítésre, ezért hagyja figyelmen kívül.
  6. Végül válasszon ki egy webhelyet, amellyel a közösségi alkalmazást társítani szeretné.

4. lépés: Tesztelje Google-hitelesítését

Jelentkezzen ki az adminisztrációs panelből, és navigáljon ide http://127.0.0.1:8000/accounts/login/. Megjelenik egy lehetőség a Google-on keresztüli bejelentkezéshez.

Kattintson rá a hozzájárulási képernyőre való átirányításhoz. Ezután válassza ki a bejelentkezéshez használt fiókot.

Miután kiválasztott egy fiókot, átirányítjuk ide http://127.0.0.1:8000/accounts/profile/. Ez azt jelenti, hogy az alkalmazás tökéletesen működik. Létrehozhat egyéni sablonokat az alapértelmezett sablonok helyettesítésére.

Felhasználói regisztráció javítása közösségi hitelesítéssel a Django-ban

A közösségi hitelesítés engedélyezése nagyszerű módja annak, hogy felhasználóinak nagyszerű élményben legyen része az alkalmazásához való regisztráció során. Vannak más módok is a hitelesítés engedélyezésére a Django-ban, és ezeket érdemes megvizsgálni, hogy eldöntsd, mi a legjobb az Ön használati esetéhez.