Kuidas OAuthi abil Djangos sotsiaalset autentimissüsteemi luua

Kuidas OAuthi abil Djangos sotsiaalset autentimissüsteemi luua

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.





kuidas hotmaili kontot sulgeda

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:

  1. Esimene on vaikimisi, mida Django kasutab. See võimaldab administraatori kasutajal administraatori paneeli sisse logida, olenemata django-allauthi konfiguratsioonist.
  2. 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.

kui kaua mul on olnud Google'i konto
  django administraatoripaneel uue saidi lisamiseks

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 saidi nime ja selle ID.

5. samm: konfigureerige oma URL-id

Teie projektis urls.py konfigureerige 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 .

  404 leht Django DEBUG-režiimis, mis näitab django-allauthis saadaolevate URL-i mustrite loendit

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.

  1. Suunduge poole Google Cloudi konsool uue projekti loomiseks. Kõigepealt klõpsake alloleval pildil näidatud rippmenüül:   Lisage oma uued OAuthi mandaadid oma administraatoripaneelile
  2. Järgmisena klõpsake nuppu UUS PROJEKT :   Django-Allauth
  3. Sisestage oma projekti nimi ja klõpsake siis nuppu LOO nupp:   Google'i nõusoleku ekraan
  4. Kui projekt on valitud, klõpsake nuppu hamburgeri menüü . Valige API-d ja teenused , siis Mandaat :
  5. Järgmisena klõpsake suvandil, mis ütleb KONFIGURERI NÕUSOLEKU EKRAAN ja valige Väline :
  1. 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 .
  2. Valige vasakpoolses menüüs Mandaat . Pärast seda klõpsake nuppu LOO MANDAAT ja valige OAuthi kliendi ID .
  3. Järgmisena valige Rakenduse tüüp ja sisestage sellele nimi. Selle õpetuse jaoks on Rakenduse tüüp saab Veebirakendus .
  4. 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.
  5. 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 rakendused ja looge uus suhtlusrakendus. Uue suhtlusrakenduse loomiseks järgige neid samme.

parim eelarveprotsessor mängude jaoks 2019
  1. Lisage pakkuja. Pakkuja viitab rakendusele, millega te oma kasutajat autentite. Sel juhul on see Google, teisel juhul võib see olla Snapchat.
  2. Sisestage oma uuele suhtlusrakendusele nimi. Veenduge, et see oleks mõistlik nimi
  3. Kleepige sisse Kliendi ID kopeerisite Google'ist.
  4. Jaoks Salajane võti , kleepige sisse Kliendi saladus kopeerisite Google'ist.
  5. The Võti väli ei kehti Google'iga autentimisel, seega jätke see tähelepanuta.
  6. 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.

 's default sign in page

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. Saate luua kohandatud malle, mis asendavad vaikemalle.

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.