Siit saate teada, kuidas luua Django sotsiaalmeediakontodega turvaline sisselogimissüsteem OAuthi abil.
Sotsiaalne autentimine on viis isiku identiteedi kinnitamiseks sotsiaalkonto kaudu, selle asemel, et kasutada paroole. Veebiarenduses on alati abi kasutajate autentimisest ilma paroolideta. Nii saavad nad sisse logida sotsiaalsete rakenduste kaudu, nagu Google, Twitter või GitHub.
Sotsiaalse autentimise lubamine on suurepärane viis oma rakenduse turvalisuse suurendamiseks, vähendades tavaliste paroolidega seotud haavatavuste ohtu. See parandab ka teie rakenduse kasutuskogemust, kuna kasutajad ei pea palju paroole meeles pidama.
Kasutaja autentimine Djangos
Django pakub arendajatele töötamiseks vaikimisi autentimissüsteemi. See autentimissüsteem kasutab aga traditsioonilist autentimist, mis hõlmab käsitsi andmete kogumist, nagu kasutajanimi, e-posti aadress, parool, ees- ja perekonnanimi.
Disainilt on Django autentimissüsteem väga üldine ega paku palju funktsioone, mida tänapäeval enamikus veebi autentimissüsteemides kasutatakse. Selle täiendamiseks soovite kasutada kolmandate osapoolte pakette, näiteks
django-allauth pakett.Kuidas lubada OAuth Djangos
Kasutajate autentimiseks Django rakenduses OAuthi abil saate kasutada Django paketti nimega django-allauth.
Django Allauth on pakett, mis tegeleb teie Django projekti autentimise, registreerimise, kontohalduse ja kolmanda osapoole (sotsiaalse) konto autentimisega. Järgmised sammud juhendavad teid Django Allauthi seadistamisel oma Django projekti jaoks.
1. samm: installige ja seadistage Django-Allauth
Kui sa seda veel tegema pead, luua virtuaalne keskkond ja installida django-allauth pipi kaudu:
pip install django-allauth
Pange tähele, et selle toimimiseks peate kasutama Python 3.5 või uuemat versiooni ja Django 2.0 või uuemat versiooni.
2. samm: lisage Django jaoks vajalikud rakendused Django-Allauthi jaoks
Pärast paigaldamist django-allauth, ava oma settings.py faili ja lisage omale järgmised rakendused INSTALLED_APPS nimekiri:
INSTALLED_APPS = [
Add your other apps here
# Djang Allauth configuration apps
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
]
Siin on mõned punktid, mida mõnede ülaltoodud rakenduste kohta tähele panna.
- The allauth.socialaccount rakendus võimaldab kasutajatel sisse logida sotsiaalsete rakenduste kaudu, nagu X (endine Twitter), Instagram, GitHub ja teised.
- The django.contrib.sites rakendus on sisseehitatud Django raamistik, mis on vajalik django-allauth töötama. Rakendus võimaldab hallata ja eristada mitut saiti ühe Django projekti raames. Saate aru, kuidas see toimib, viidates Django dokumentatsioon.
3. samm: määrake oma projekti jaoks autentimise taustaprogrammid
Järgmine samm on määratleda, kuidas soovite oma kasutajaid autentida. Seda saate teha, konfigureerides AUTHENTICATION_BACKENDS sinus settings.py faili. Sest django-allauth, peaksite lisama need:
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]
Ülaltoodud koodilõik määratleb kaks autentimise taustaprogrammi:
- Esimene on vaikimisi, mida Django kasutab. See võimaldab administraatori kasutajal administraatori paneeli sisse logida, olenemata django-allauthi konfiguratsioonist.
- Teine määratleb autentimise taustaprogrammi django-allauth.
4. samm: lisage oma saidi ID
Seadete faili peaksite lisama oma saidi ID. Siin on näide:
SITE_ID = 1
Vaikimisi on olemas sait nimega example.com administraatori paneelil. Saate otsustada seda saiti muuta või selle enda jaoks lisada. Mõlemal juhul peaksite sisse logima administraatori paneeli ja liikuma lehele saidid rakendus.
Django saidi ID hankimiseks avage oma Käsurea liides (CLI) ja käivitage see käsk:
python manage.py shell
Järgmisena kirjutage see skript Pythoni kesta:
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)
Ülaltoodud kood prindib nii saidi nime kui ka selle ID.
5. samm: konfigureerige oma URL-id
Teie projektis urls.py faili, seadistage URL-i muster django-allauth. See peaks välja nägema nii:
from django.urls import path, include
urlpatterns = [
# Djang-allauth url pattern
path('accounts/', include('allauth.urls')),
]
Selle seadistuse abil saate käivitada arendusserveri ja navigeerida sellesse http://127.0.0.1:8000/accounts/. Kui teil on SILU seatud Tõsi, peaksite nägema saadaolevate URL-i mustrite loendit django-allauth.
Kui olete ülaltoodu teinud, peaks teie projekt olema sotsiaalseks autentimiseks valmis.
Kuidas rakendada Google'i sisselogimist/registreerumist oma Django rakenduses
Pärast seadistamist django-allauth, peaksite olema valmis laskma oma kasutajatel end oma sotsiaalkontode (nt Google) abil autentida.
1. samm: registreerige installitud rakendustes oma sotsiaalkonto pakkuja
Sinu settings.py faili, peaksite lisama sotsiaalkonto pakkuja INSTALLED_APPS. Sel juhul on see Google. Muud võimalused on Instagram, X jne.
INSTALLED_APPS = [
Add your other apps here
# Social account provider (google)
'allauth.socialaccount.providers.google',
]
2. samm: looge Google'is oma kliendi ID ja salavõti
Selle sammu lõpuleviimiseks peab teil olema Google'i konto. Kui olete seda teinud, järgige järgmisi samme.
- Suunduge poole Google Cloudi konsool uue projekti loomiseks. Kõigepealt klõpsake alloleval pildil näidatud rippmenüül:
- Järgmisena klõpsake nuppu UUS PROJEKT:
- Sisestage oma projekti nimi ja klõpsake siis nuppu LOO nupp:
- Kui projekt on valitud, klõpsake nuppu hamburgeri menüü. Valige API-d ja teenused, siis Mandaat:
- Järgmisena klõpsake suvandil, mis ütleb KONFIGURERI NÕUSOLEKU EKRAAN ja valige Väline:
- Järgmisel lehel sisestage oma rakenduse nimi ja vajadusel lisage meiliaadress. Mõne kohandamise jaoks saate uurida ka konfiguratsioone. Kui olete valmis, klõpsake nuppu SALVESTA JA JÄTKA.
- Valige vasakpoolses menüüs Mandaat. Pärast seda klõpsake nuppu LOO MANDAAT ja valige OAuthi kliendi ID.
- Järgmisena valige Rakenduse tüüp ja sisestage sellele nimi. Selle õpetuse jaoks on Rakenduse tüüp saab Veebirakendus.
- Järgmisena lisage URI-d Volitatud JavaScripti päritolu ja Volitatud ümbersuunamise URI-d. Teie veebisaidi host peaks olema JavaScripti päritolu ja süsteem suunab kasutajad pärast autentimist ümbersuunamis-URI-le. Ümbersuunamise URI peaks tavaliselt sisaldama teie-hosti-nimi/accounts/google/login/callback/. Arendusrežiimi jaoks on see: http://127.0.0.1:8000/accounts/google/login/callback/. Kliki LOO kui kord tehtud.
- Pärast mandaatide loomist saate kopeerida oma Kliendi ID või Kliendi saladus kindlasse kohta või laadige need alla JSON-failidena.
3. samm: lisage oma Django rakendusse oma kliendi ID ja salavõti
Pärast vajalike mandaatide loomist navigeerige saidile http://127.0.0.1:8000/admin, valige Sotsiaalsed rakendusedja looge uus suhtlusrakendus. Uue suhtlusrakenduse loomiseks järgige neid samme.
- Lisage pakkuja. Pakkuja viitab rakendusele, millega te oma kasutajat autentite. Sel juhul on see Google, teisel juhul võib see olla Snapchat.
- Sisestage oma uuele suhtlusrakendusele nimi. Veenduge, et see oleks mõistlik nimi
- Kleepige sisse Kliendi ID kopeerisite Google'ist.
- Jaoks Salajane võti, kleepige sisse Kliendi saladus kopeerisite Google'ist.
- The Võti väli ei kehti Google'iga autentimisel, seega jätke see tähelepanuta.
- Lõpuks valige sait, millega sotsiaalrakendus seostada.
4. samm: testige oma Google'i autentimist
Logige oma administraatoripaneelilt välja ja navigeerige saidile http://127.0.0.1:8000/accounts/login/. Näete Google'i kaudu sisselogimise võimalust.
Nõusolekukuvale suunamiseks klõpsake sellel. Järgmisena valige konto, millega sisse logida.
Kui olete konto valinud, suunatakse teid aadressile http://127.0.0.1:8000/accounts/profile/. See tähendab, et teie rakendus töötab ideaalselt. Vaikemallide asendamiseks saate luua kohandatud malle.
Kasutajate registreerimise täiustamine sotsiaalse autentimisega Djangos
Sotsiaalse autentimise lubamine on suurepärane viis aidata kasutajatel saada teie rakenduse jaoks registreerimisel suurepärane kogemus. Djangos autentimise lubamiseks on ka teisi viise ja peaksite neid uurima, et otsustada, mis on teie kasutusjuhtumi jaoks parim.