Paano Gumawa ng Social Authentication System sa Django Gamit ang OAuth

Paano Gumawa ng Social Authentication System sa Django Gamit ang OAuth

Ang social authentication ay isang paraan upang kumpirmahin ang pagkakakilanlan ng isang tao sa pamamagitan ng isang social account sa halip na gumamit ng mga password. Sa web development, palaging nakakatulong na patotohanan ang mga user na walang password. Sa ganitong paraan, makakapag-log in sila sa pamamagitan ng mga social app tulad ng Google, Twitter, o GitHub.





Ang pagpapagana ng social authentication ay isang mahusay na paraan upang mapahusay ang seguridad ng iyong application sa pamamagitan ng pagbawas sa panganib ng mga karaniwang kahinaan na nauugnay sa password. Mapapabuti rin nito ang karanasan ng user ng iyong app dahil hindi na kailangang matandaan ng mga user ang maraming password.





Pagpapatunay ng User sa Django

Nagbibigay ang Django ng isang default na sistema ng pagpapatunay para magtrabaho kasama ang mga developer. Gayunpaman, ang sistema ng pagpapatunay na ito ay gumagamit ng tradisyonal na pagpapatotoo, na kinabibilangan ng manu-manong pagkolekta ng data tulad ng username, email, password, unang pangalan, at apelyido ng user.





Sa pamamagitan ng disenyo, ang sistema ng pagpapatunay ng Django ay napaka-generic at hindi nagbibigay ng maraming mga tampok na ginagamit sa karamihan ng mga sistema ng pagpapatunay sa web ngayon. Upang makadagdag dito, gugustuhin mong gumamit ng mga third-party na pakete gaya ng django-allauth pakete.

Paano Paganahin ang OAuth sa Django

Upang patotohanan ang iyong mga user gamit ang OAuth sa isang Django application, maaari kang gumamit ng Django package na tinatawag django-allauth .



Ang Django Allauth ay isang package na humahawak sa pagpapatunay, pagpaparehistro, pamamahala ng account, at pagpapatotoo ng third-party (social) na account para sa iyong proyekto sa Django. Gagabayan ka ng mga sumusunod na hakbang patungo sa pag-set up ng Django Allauth para sa iyong proyekto sa Django.

Hakbang 1: I-install at I-set Up ang Django-Allauth

Kung gagawin mo pa, lumikha ng isang virtual na kapaligiran at i-install django-allauth sa pamamagitan ng pip:





pip install django-allauth 

Tandaan na dapat ay gumagamit ka ng Python 3.5 o mas mataas at Django 2.0 o mas mataas para gumana ito.

Hakbang 2: Magdagdag ng Mga Kinakailangang Apps sa Django para sa Django-Allauth

Pagkatapos i-install django-allauth , buksan mo ang iyong settings.py file at idagdag ang mga sumusunod na app sa iyong INSTALLED_APPS listahan:





INSTALLED_APPS = [ 

    """
    Add your other apps here
    """

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

Narito ang ilang puntong dapat tandaan tungkol sa ilan sa mga app sa itaas:

  • Ang allauth.socialaccount app ay magbibigay-daan sa mga user na mag-sign in sa pamamagitan ng mga social app tulad ng X (dating Twitter), Instagram, GitHub, at iba pa.
  • Ang django.contrib.sites app ay isang built-in na Django framework na kinakailangan para sa django-allauth magtrabaho. Ang app ay nagbibigay ng kakayahang pamahalaan at pag-iba-ibahin ang maramihang mga site sa loob ng isang proyekto ng Django. Maiintindihan mo kung paano ito gumagana sa pamamagitan ng pagtukoy sa Dokumentasyon ng Django .

Hakbang 3: Tukuyin ang Mga Authentication Backend para sa Iyong Proyekto

Ang susunod na hakbang ay tukuyin kung paano mo gustong patotohanan ang iyong mga user. Magagawa mo ito sa pamamagitan ng pag-configure ng AUTHENTICATION_BACKENDS sa iyong settings.py file. Para sa django-allauth , dapat mong idagdag ang mga ito:

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

Tinutukoy ng snippet ng code sa itaas ang dalawang backend ng pagpapatotoo:

  1. Ang una ay ang default na ginamit ng Django. Ito ay magbibigay-daan sa admin user na mag-log in sa admin panel anuman ang configuration ng django-allauth.
  2. Ang pangalawa ay tumutukoy sa authentication backend para sa django-allauth .

Hakbang 4: Idagdag ang Iyong Site ID

Sa iyong file ng mga setting, dapat mong idagdag ang ID para sa iyong site. Narito ang isang halimbawa:

SITE_ID = 1 

Bilang default, mayroong isang site na tinatawag example.com sa admin panel. Maaari kang magpasya na baguhin ang site na ito o magdagdag ng isa para sa iyong sarili. Sa alinmang kaso, dapat kang mag-log in sa admin panel at mag-navigate sa Mga site app.

  django admin panel upang magdagdag ng bagong site

Upang makuha ang site ID para sa isang Django site, buksan ang iyong Command Line Interface (CLI) at patakbuhin ang utos na ito:

python manage.py shell 

Susunod, isulat ang script na ito sa shell ng Python:

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)

Ipi-print ng code sa itaas ang pangalan ng site pati na rin ang ID nito.

Hakbang 5: I-configure ang Iyong mga URL

Sa iyong proyekto urls.py file, i-configure ang pattern ng URL para sa django-allauth . Ganito dapat ang hitsura nito:

from django.urls import path, include 

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

Sa setup na ito, maaari mong simulan ang iyong development server at mag-navigate sa http://127.0.0.1:8000/accounts/ . Kung mayroon kang DEBUG itakda sa totoo , dapat kang makakita ng listahan ng mga available na pattern ng URL para sa django-allauth .

  Isang 404 na pahina sa Django DEBUG mode, na nagpapakita ng listahan ng mga pattern ng URL na available sa django-allauth

Kung nagawa mo na ang nasa itaas, dapat ay handa na ang iyong proyekto para sa social authentication.

Paano Ipatupad ang Google Login/Signup sa Iyong Django App

Pagkatapos mag-set up django-allauth , dapat ay handa kang hayaan ang iyong mga user na patotohanan ang kanilang sarili sa kanilang mga social account gaya ng Google.

Hakbang 1: Irehistro ang Iyong Social Account Provider sa Iyong Naka-install na Apps

Sa iyong settings.py file, dapat mong idagdag ang provider ng social account sa INSTALLED_APPS . Sa kasong ito, ito ay Google. Ang iba pang mga pagpipilian ay Instagram, X, atbp.

INSTALLED_APPS = [ 

    """
    Add your other apps here
    """

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

Hakbang 2: Gumawa ng Iyong Client ID at Secret Key sa Google

Upang makumpleto ang hakbang na ito, dapat ay mayroon kang isang Google account na ginawa. Kung nagawa mo na, sundin ang mga susunod na hakbang na ito:

  1. Tumungo sa Google Cloud console upang lumikha ng isang bagong proyekto. Una, mag-click sa drop-down na ipinapakita sa larawan sa ibaba:   Idagdag ang iyong mga bagong kredensyal sa OAuth sa iyong admin panel
  2. Susunod, mag-click sa BAGONG PROYEKTO :   Django-Allauth
  3. Maglagay ng pangalan para sa iyong proyekto, pagkatapos ay i-click ang GUMAWA pindutan:   Screen ng pahintulot ng Google
  4. Kapag napili ang iyong proyekto, mag-click sa ang menu ng hamburger . Pumili Mga API at Serbisyo , pagkatapos Mga kredensyal :
  5. Susunod, mag-click sa opsyon na nagsasabing I-configure ang SCREEN NG PAHINTULOT at piliin Panlabas :
  1. Sa susunod na page, maglagay ng pangalan para sa iyong app at magsama ng email kung kinakailangan. Maaari mo ring tuklasin ang mga pagsasaayos para sa ilang pagpapasadya. Kapag tapos na, mag-click sa I-SAVE AT MAGPATULOY .
  2. Sa kaliwang menu, piliin Mga kredensyal . Pagkatapos nito, mag-click sa GUMAWA NG MGA KREDENSYAL at piliin OAuth client ID .
  3. Susunod, piliin ang Uri ng aplikasyon at maglagay ng pangalan para sa pareho. Para sa tutorial na ito, ang Uri ng aplikasyon magiging Web application .
  4. Susunod, magdagdag ng mga URI para sa Awtorisadong mga pinagmulan ng JavaScript at Mga awtorisadong URI sa pag-redirect . Ang host ng iyong website ay dapat na ang mga pinagmulan ng JavaScript, at ire-redirect ng system ang mga user sa redirect URI pagkatapos ng pagpapatunay. Ang redirect URI ay dapat na karaniwang naglalaman your-host-name/accounts/google/login/callback /. Para sa development mode, ito ay magiging: http://127.0.0.1:8000/accounts/google/login/callback/ . Mag-click sa GUMAWA kapag tapos na.
  5. Pagkatapos gawin ang mga kredensyal, maaari mong kopyahin ang iyong ID ng kliyente o Sikreto ng kliyente sa isang ligtas na lugar o i-download ang mga ito bilang mga JSON file.

Hakbang 3: Idagdag ang Iyong Client ID at Secret Key sa Iyong Django App

Pagkatapos gumawa ng mga kinakailangang kredensyal, mag-navigate sa http://127.0.0.1:8000/admin , piliin Mga social application , at lumikha ng bagong social application. Sundin ang mga hakbang na ito upang lumikha ng bagong social app:

  1. Magdagdag ng provider. Tinutukoy ng provider ang app kung saan mo pinapatotohanan ang iyong user. Sa kasong ito, ito ay Google, sa ibang kaso, ito ay maaaring Snapchat.
  2. Maglagay ng pangalan para sa iyong bagong social app. Tiyaking ito ay isang makatwirang pangalan
  3. Idikit sa ID ng kliyente kinopya mo mula sa Google.
  4. Para sa Lihim na susi , idikit sa Sikreto ng kliyente kinopya mo mula sa Google.
  5. Ang Susi hindi nalalapat ang field sa pagpapatotoo sa Google, kaya huwag pansinin ito.
  6. Panghuli, pumili ng site na iuugnay ang social application.

Hakbang 4: Subukan ang Iyong Google Authentication

Mag-log out sa iyong admin panel at mag-navigate sa http://127.0.0.1:8000/accounts/login/ . Makakakita ka ng opsyong mag-log in sa pamamagitan ng Google.

 's default sign in page

Mag-click dito upang mag-redirect sa screen ng pahintulot. Susunod, pumili ng isang account upang mag-log in.

Kapag nakapili ka na ng account, mare-redirect ka sa http://127.0.0.1:8000/accounts/profile/ . Nangangahulugan ito na gumagana nang perpekto ang iyong app. Maaari kang lumikha ng mga custom na template upang palitan ang mga default.

Pagpapahusay ng Pagpaparehistro ng User Gamit ang Social Authentication sa Django

Ang pagpapagana ng social authentication ay isang mahusay na paraan upang matulungan ang iyong mga user na magkaroon ng magandang karanasan sa pagrerehistro para sa iyong aplikasyon. Mayroong iba pang mga paraan upang paganahin ang pagpapatunay sa Django, at dapat mong galugarin ang mga ito upang magpasya kung ano ang pinakamahusay para sa iyong kaso ng paggamit.

tcl roku tv remote na hindi gumagana