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.
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:
- 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.
- 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:
- 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:
- Ezután kattintson a gombra ÚJ PROJEKT:
- Adja meg a projekt nevét, majd kattintson a gombra TEREMT gomb:
- Ha kiválasztotta a projektet, kattintson a gombra a hamburger menü. Válassza ki API-k és szolgáltatások, akkor Hitelesítő adatok:
- Ezután kattintson a feliratra BEJELENTÉSI KÉPERNYŐ KONFIGURÁLÁSA és válassza ki Külső:
- 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.
- 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ó.
- 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.
- 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.
- 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:
- 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.
- Adja meg az új közösségi alkalmazás nevét. Győződjön meg róla, hogy ésszerű név
- Illessze be a Ügyfélazonosító a Google-ról másoltad ki.
- A Titkos kulcs, illessze be a Ügyfél titka a Google-ról másoltad ki.
- A Kulcs mező nem vonatkozik a Google hitelesítésre, ezért hagyja figyelmen kívül.
- 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.