Opi luomaan suojattu kirjautumisjärjestelmä sosiaalisen median tileillä Djangossa OAuthin avulla.

Sosiaalinen todennus on tapa vahvistaa henkilön henkilöllisyys sosiaalisen tilin kautta salasanojen sijaan. Verkkokehityksessä on aina hyödyllistä todentaa käyttäjät ilman salasanoja. Tällä tavalla he voivat kirjautua sisään sosiaalisten sovellusten, kuten Googlen, Twitterin tai GitHubin, kautta.

Sosiaalisen todennuksen ottaminen käyttöön on loistava tapa parantaa sovelluksesi turvallisuutta vähentämällä yleisten salasanoihin liittyvien haavoittuvuuksien riskiä. Se parantaa myös sovelluksesi käyttökokemusta, koska käyttäjien ei tarvitse muistaa monia salasanoja.

Käyttäjän todennus Djangossa

Django tarjoaa oletusarvoisen todennusjärjestelmän kehittäjille. Tämä todennusjärjestelmä käyttää kuitenkin perinteistä todennusta, jossa kerätään manuaalisesti tietoja, kuten käyttäjänimi, sähköpostiosoite, salasana, etunimi ja sukunimi.

Suunnittelultaan Djangon todennusjärjestelmä on hyvin yleinen, eikä se tarjoa monia ominaisuuksia, joita käytetään useimmissa verkkotodennusjärjestelmissä nykyään. Tämän täydentämiseksi haluat käyttää kolmannen osapuolen paketteja, kuten

instagram viewer
django-allauth paketti.

Kuinka ottaa OAuth käyttöön Djangossa

Voit todentaa käyttäjäsi OAuthin avulla Django-sovelluksessa käyttämällä Django-pakettia nimeltä django-allauth.

Django Allauth on paketti, joka hoitaa todennuksen, rekisteröinnin, tilinhallinnan ja kolmannen osapuolen (sosiaalisen) tilin todennuksen Django-projektillesi. Seuraavat vaiheet opastavat sinua määrittämään Django Allauthin Django-projektillesi.

Vaihe 1: Asenna ja määritä Django-Allauth

Jos et ole vielä tekemässä niin, luoda virtuaalinen ympäristö ja asenna django-allauth pipin kautta:

pip install django-allauth

Huomaa, että käytössäsi on oltava Python 3.5 tai uudempi ja Django 2.0 tai uudempi, jotta se toimii.

Vaihe 2: Lisää vaaditut sovellukset Django for Django-Allauthille

Asennuksen jälkeen django-allauth, avaa sinun settings.py tiedosto ja lisää seuraavat sovellukset omaan INSTALLED_APPS lista:

INSTALLED_APPS = [


Add your other apps here

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

Tässä on joitain huomioitavia kohtia joistakin yllä olevista sovelluksista:

  • The allauth.socialaccount sovellus antaa käyttäjien kirjautua sisään sosiaalisten sovellusten kautta, kuten X (entinen Twitter), Instagram, GitHub ja muut.
  • The django.contrib.sites sovellus on sisäänrakennettu Django-kehys, jota tarvitaan django-allauth työskennellä. Sovellus tarjoaa mahdollisuuden hallita ja erottaa useita sivustoja yhdessä Django-projektissa. Voit ymmärtää, miten se toimii, viittaamalla kohtaan Django dokumentaatio.

Vaihe 3: Määritä todennuksen taustaohjelmat projektillesi

Seuraava vaihe on määrittää, kuinka haluat todentaa käyttäjäsi. Voit tehdä tämän määrittämällä AUTHENTICATION_BACKENDS sinun settings.py tiedosto. varten django-allauth, sinun pitäisi lisätä nämä:

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

Yllä oleva koodinpätkä määrittää kaksi todennustaustaohjelmaa:

  1. Ensimmäinen on Djangon käyttämä oletusarvo. Tämä antaa järjestelmänvalvojan käyttäjälle mahdollisuuden kirjautua sisään hallintapaneeliin django-allauthin asetuksista riippumatta.
  2. Toinen määrittelee todennuksen taustaohjelman django-allauth.

Vaihe 4: Lisää sivustotunnuksesi

Lisää sivustosi tunnus asetustiedostoon. Tässä on esimerkki:

SITE_ID = 1

Oletuksena on sivusto nimeltä esimerkki.fi hallintapaneelissa. Voit päättää muokata tätä sivustoa tai lisätä sellaisen itsellesi. Kummassakin tapauksessa sinun tulee kirjautua sisään hallintapaneeliin ja navigoida kohtaan Sivustot sovellus.

Saat Django-sivuston tunnuksen avaamalla omasi Command Line Interface (CLI) ja suorita tämä komento:

python manage.py shell

Kirjoita seuraavaksi tämä kirjoitus Python-kuoreen:

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)

Yllä oleva koodi tulostaa sivuston nimen sekä sen tunnuksen.

Vaihe 5: Määritä URL-osoitteesi

Projektissasi urls.py tiedosto, määritä URL-osoitemalli django-allauth. Tältä sen pitäisi näyttää:

from django.urls import path, include

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

Tämän asennuksen avulla voit käynnistää kehityspalvelimen ja navigoida siihen http://127.0.0.1:8000/accounts/. Jos sinulla on DEBUG asetettu Totta, sinun pitäisi nähdä luettelo käytettävissä olevista URL-malleista django-allauth.

Jos olet tehnyt edellä mainitut, projektisi pitäisi olla valmis sosiaaliseen todentamiseen.

Kuinka ottaa Google-sisäänkirjautuminen / -kirjautuminen käyttöön Django-sovelluksessasi

Asettamisen jälkeen django-allauth, sinun pitäisi olla valmis antamaan käyttäjien todentaa itsensä sosiaalisten tiliensä, kuten Googlen, avulla.

Vaihe 1: Rekisteröi sosiaalisen tilin tarjoaja asennettuihin sovelluksiin

Sinun settings.py tiedostoon, sinun tulee lisätä sosiaalisen tilin tarjoaja INSTALLED_APPS. Tässä tapauksessa se on Google. Muita vaihtoehtoja ovat Instagram, X jne.

INSTALLED_APPS = [


Add your other apps here

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

Vaihe 2: Luo asiakastunnuksesi ja salainen avaimesi Googlessa

Tämän vaiheen suorittamiseksi sinulla on oltava Google-tili. Jos olet tehnyt niin, noudata seuraavia ohjeita:

  1. Suuntaa kohti Google Cloud -konsoli uuden projektin luomiseen. Napsauta ensin alla olevassa kuvassa näkyvää pudotusvalikkoa:
  2. Napsauta seuraavaksi UUSI PROJEKTI:
  3. Anna projektillesi nimi ja napsauta sitten LUODA painike:
  4. Kun projektisi on valittu, napsauta hampurilaismenu. Valitse API: t ja palvelut, sitten Valtuustiedot:
  5. Napsauta seuraavaksi vaihtoehtoa, jossa lukee MÄÄRITÄ SUOSTUMUSNÄYTTÖ ja valitse Ulkoinen:
  6. Kirjoita seuraavalla sivulla sovelluksesi nimi ja liitä tarvittaessa sähköpostiosoite. Voit myös tutkia konfiguraatioita mukauttamista varten. Kun olet valmis, napsauta TALLENNA JA JATKA.
  7. Valitse vasemmanpuoleisesta valikosta Valtuustiedot. Napsauta sen jälkeen LUO TUNNUSTIEDOT ja valitse OAuth-asiakastunnus.
  8. Valitse seuraavaksi Sovellustyyppi ja anna sille nimi. Tätä opetusohjelmaa varten Sovellustyyppi tulee olemaan verkkosovellus.
  9. Lisää seuraavaksi URI: t kohteelle Valtuutetut JavaScript-alkuperät ja Valtuutetut uudelleenohjaus-URI: t. Verkkosivustosi isännän tulee olla JavaScript-alkuperä, ja järjestelmä ohjaa käyttäjät uudelleenohjaus-URI: hen todennuksen jälkeen. Uudelleenohjaus-URI: n tulee yleensä sisältää isäntänimi/accounts/google/login/callback/. Kehitystilassa se on: http://127.0.0.1:8000/accounts/google/login/callback/. Klikkaa LUODA kun kerran tehty.
  10. Kun olet luonut tunnistetiedot, voit kopioida tietosi Asiakastunnus tai Asiakkaan salaisuus turvalliseen paikkaan tai lataa ne JSON-tiedostoina.

Vaihe 3: Lisää asiakastunnuksesi ja salainen avaimesi Django-sovellukseesi

Kun olet luonut tarvittavat tunnistetiedot, siirry kohtaan http://127.0.0.1:8000/admin, valitse Sosiaaliset sovelluksetja luo uusi sosiaalinen sovellus. Luo uusi sosiaalinen sovellus noudattamalla näitä ohjeita:

  1. Lisää palveluntarjoaja. Palveluntarjoaja viittaa sovellukseen, jolla todennat käyttäjäsi. Tässä tapauksessa se on Google, toisessa tapauksessa se voi olla Snapchat.
  2. Anna nimi uudelle some-sovelluksellesi. Varmista, että se on järkevä nimi
  3. Liitä sisään Asiakastunnus kopioit Googlesta.
  4. Varten Salainen avain, liitä Asiakkaan salaisuus kopioit Googlesta.
  5. The Avain -kenttä ei koske Google-todennusta, joten jätä se huomiotta.
  6. Valitse lopuksi sivusto, johon sosiaalinen sovellus liitetään.

Vaihe 4: Testaa Google-todennusta

Kirjaudu ulos hallintapaneelista ja siirry kohtaan http://127.0.0.1:8000/accounts/login/. Näet vaihtoehdon kirjautua sisään Googlen kautta.

Napsauta sitä ohjataksesi suostumusnäyttöön. Valitse seuraavaksi tili, jolla kirjaudut sisään.

Kun olet valinnut tilin, sinut ohjataan osoitteeseen http://127.0.0.1:8000/accounts/profile/. Tämä tarkoittaa, että sovelluksesi toimii täydellisesti. Voit luoda mukautettuja malleja korvaamaan oletusmallit.

Käyttäjärekisteröinnin parantaminen sosiaalisen todentamisen avulla Djangossa

Sosiaalisen todennuksen ottaminen käyttöön on loistava tapa auttaa käyttäjiäsi saamaan erinomaisen kokemuksen sovellukseesi rekisteröitymisestä. Djangossa on muita tapoja ottaa todennus käyttöön, ja sinun tulee tutkia niitä päättääksesi, mikä on paras käyttötapauksesi.