Научите како да направите безбедан систем за пријаву са налозима друштвених медија у Дјангу користећи ОАутх.

Друштвена аутентификација је начин да се потврди идентитет особе преко друштвеног налога уместо коришћења лозинки. У веб развоју, увек је од помоћи аутентификовати кориснике без лозинки. На овај начин могу да се пријаве преко друштвених апликација као што су Гоогле, Твиттер или ГитХуб.

Омогућавање друштвене аутентификације је одличан начин да побољшате безбедност ваше апликације смањењем ризика од уобичајених пропуста везаних за лозинку. Такође ће побољшати корисничко искуство ваше апликације јер корисници неће морати да памте много лозинки.

Аутентификација корисника у Дјангу

Дјанго обезбеђује подразумевани систем аутентификације са којим програмери могу да раде. Међутим, овај систем аутентификације користи традиционалну аутентификацију, која укључује ручно прикупљање података као што су корисничко име, е-пошта, лозинка, име и презиме корисника.

По дизајну, Дјангов систем аутентификације је веома генерички и не пружа много функција које се данас користе у већини система за веб аутентификацију. Да бисте ово допунили, желећете да користите пакете треће стране као што је

instagram viewer
дјанго-аллаутх пакет.

Како омогућити ОАутх у Дјангу

Да бисте аутентификовали своје кориснике користећи ОАутх у Дјанго апликацији, можете користити Дјанго пакет под називом дјанго-аллаутх.

Дјанго Аллаутх је пакет који управља аутентификацијом, регистрацијом, управљањем налогом и аутентификацијом налога треће стране (друштвеним) за ваш Дјанго пројекат. Следећи кораци ће вас водити ка подешавању Дјанго Аллаутх-а за ваш Дјанго пројекат.

Корак 1: Инсталирајте и подесите Дјанго-Аллаутх

Ако то тек треба да урадите, створити виртуелно окружење и инсталирати дјанго-аллаутх преко пип-а:

pip install django-allauth

Имајте на уму да морате да користите Питхон 3.5 или новији и Дјанго 2.0 или новији да би функционисао.

Корак 2: Додајте потребне апликације у Дјанго за Дјанго-Аллаутх

Након инсталирања дјанго-аллаутх, отвори свој сеттингс.пи датотеку и додајте следеће апликације у свој ИНСТАЛЛЕД_АППС листа:

INSTALLED_APPS = [


Add your other apps here

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

Ево неколико тачака које треба напоменути о неким од горе наведених апликација:

  • Тхе аллаутх.социалаццоунт апликација ће омогућити корисницима да се пријаве преко друштвених апликација као што су Кс (раније Твиттер), Инстаграм, ГитХуб и друге.
  • Тхе дјанго.цонтриб.ситес апп је уграђени Дјанго оквир који је потребан за дјанго-аллаутх на посао. Апликација пружа могућност управљања и разликовања више локација у оквиру једног Дјанго пројекта. Можете разумети како то функционише позивајући се на Дјанго документација.

Корак 3: Дефинишите позадине за аутентификацију за ваш пројекат

Следећи корак је да дефинишете како желите да аутентификујете своје кориснике. То можете учинити тако што ћете конфигурисати АУТХЕНТИЦАТИОН_БАЦКЕНДС у вашем сеттингс.пи фајл. За дјанго-аллаутх, требало би да додате ове:

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

Исечак кода изнад дефинише два позадина аутентификације:

  1. Први је подразумевани који користи Дјанго. Ово ће омогућити кориснику администратора да се пријави на админ панел без обзира на конфигурацију дјанго-аллаутх-а.
  2. Други дефинише позадину аутентификације за дјанго-аллаутх.

Корак 4: Додајте свој ИД сајта

У датотеци са подешавањима требало би да додате ИД за своју веб локацију. Ево примера:

SITE_ID = 1

Подразумевано постоји сајт под називом екампле.цом у админ панелу. Можете одлучити да измените овај сајт или да га додате за себе. У оба случаја, требало би да се пријавите на административни панел и идите на Сајтови апликација.

Да бисте добили ИД локације за Дјанго сајт, отворите свој Интерфејс командне линије (ЦЛИ) и покрените ову команду:

python manage.py shell

Затим напишите ову скрипту у Питхон љуску:

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)

Горњи код ће одштампати назив сајта као и његов ИД.

Корак 5: Конфигуришите своје УРЛ адресе

У вашем пројекту урлс.пи датотеку, конфигуришите УРЛ образац за дјанго-аллаутх. Овако би требало да изгледа:

from django.urls import path, include

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

Са овим подешавањем, можете покренути свој развојни сервер и отићи до њега http://127.0.0.1:8000/accounts/. Ако имате ДЕБУГ подешен на Истина, требало би да видите листу доступних УРЛ образаца за дјанго-аллаутх.

Ако сте урадили горе наведено, ваш пројекат би требао бити спреман за друштвену аутентификацију.

Како да имплементирате Гоогле пријаву/регистрацију у вашу Дјанго апликацију

Након постављања дјанго-аллаутх, требало би да будете спремни да дозволите својим корисницима да се аутентификују помоћу својих друштвених налога као што је Гоогле.

Корак 1: Региструјте свог провајдера друштвеног налога у вашим инсталираним апликацијама

У вашем сеттингс.пи датотеку, требало би да додате провајдера друштвеног налога ИНСТАЛЛЕД_АППС. У овом случају, то је Гоогле. Друге опције су Инстаграм, Кс итд.

INSTALLED_APPS = [


Add your other apps here

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

Корак 2: Креирајте свој ИД клијента и тајни кључ на Гоогле-у

Да бисте довршили овај корак, морате имати креиран Гоогле налог. Ако сте то урадили, следите следеће кораке:

  1. Пређите на Гоогле Цлоуд конзола да креирате нови пројекат. Прво кликните на падајући мени приказан на слици испод:
  2. Затим кликните на НОВИ ПРОЈЕКАТ:
  3. Унесите назив за свој пројекат, а затим кликните на КРЕИРАЈ дугме:
  4. Када изаберете пројекат, кликните на мени хамбургера. Изаберите АПИ-ји и услуге, онда Акредитиви:
  5. Затим кликните на опцију која каже КОНФИГУРИРАЈУ ЕКРАН САГЛАСНОСТИ и изаберите Екстерни:
  6. На следећој страници унесите име за своју апликацију и укључите адресу е-поште где је то потребно. Такође можете истражити конфигурације за нека прилагођавања. Када завршите, кликните на САЧУВАЈ И НАСТАВИ.
  7. У левом менију изаберите Акредитиви. Након тога, кликните на ЦРЕАТЕ ЦРЕДЕНТИАЛС и изаберите ИД ОАутх клијента.
  8. Затим изаберите Врста апликације и унесите назив за исту. За овај водич, Врста апликације биће веб апликација.
  9. Затим додајте УРИ-је за Ауторизовани ЈаваСцрипт извори и Овлашћени УРИ за преусмеравање. Хост ваше веб локације треба да буде ЈаваСцрипт порекло, а систем ће преусмерити кориснике на УРИ за преусмеравање након аутентификације. УРИ за преусмеравање обично треба да садржи иоур-хост-наме/аццоунтс/гоогле/логин/цаллбацк/. За развојни режим, то ће бити: http://127.0.0.1:8000/accounts/google/login/callback/. Кликните на КРЕИРАЈ када се једном уради.
  10. Након креирања акредитива, можете копирати своје ИД клијента или Тајна клијента на безбедно место или их преузмите као ЈСОН датотеке.

Корак 3: Додајте свој ИД клијента и тајни кључ у своју Дјанго апликацију

Након креирања потребних акредитива, идите на http://127.0.0.1:8000/admin, изаберите Друштвене апликације, и креирајте нову друштвену апликацију. Пратите ове кораке да бисте креирали нову апликацију за друштвене мреже:

  1. Додајте провајдера. Добављач се односи на апликацију помоћу које аутентификујете свог корисника. У овом случају, то је Гоогле, у другом случају може бити Снапцхат.
  2. Унесите назив за своју нову апликацију за друштвене мреже. Уверите се да је то разумно име
  3. Залепите у ИД клијента копирали сте са Гоогле-а.
  4. За Тајни кључ, залепите у Тајна клијента копирали сте са Гоогле-а.
  5. Тхе Кључ поље се не односи на аутентификацију са Гоогле-ом, па га занемарите.
  6. На крају, изаберите локацију са којом ћете повезати друштвену апликацију.

Корак 4: Тестирајте своју Гоогле аутентификацију

Одјавите се са свог административног панела и идите на http://127.0.0.1:8000/accounts/login/. Видећете опцију да се пријавите преко Гоогле-а.

Кликните на њега да бисте преусмерили на екран за сагласност. Затим изаберите налог са којим ћете се пријавити.

Када изаберете налог, бићете преусмерени на http://127.0.0.1:8000/accounts/profile/. То значи да ваша апликација ради савршено. Можете креирати прилагођене шаблоне да замените подразумеване.

Побољшање регистрације корисника са друштвеном аутентификацијом у Дјангу

Омогућавање друштвене аутентификације је одличан начин да помогнете својим корисницима да имају сјајно искуство регистрације за вашу апликацију. Постоје и други начини да омогућите аутентификацију у Дјангу, и требало би да их истражите да бисте одлучили шта је најбоље за ваш случај употребе.