Rumah > pembangunan bahagian belakang > Tutorial Python > Menggunakan dj-rest-auth untuk menyepadukan pengesahan GitHub dalam projek Django anda

Menggunakan dj-rest-auth untuk menyepadukan pengesahan GitHub dalam projek Django anda

Susan Sarandon
Lepaskan: 2024-11-22 02:27:11
asal
463 orang telah melayarinya

Artikel ini ialah panduan ringkas tentang cara melaksanakan GitHub OAuth untuk pengesahan pengguna yang selamat.

Dalam panduan ini kita akan dapat

  • cipta atau log masuk pengguna dengan lancar menggunakan kelayakan GitHub mereka
  • simpan bukti kelayakan pengguna untuk kegunaan kemudian

Prasyarat

Untuk mendapatkan yang terbaik daripada artikel ini, pengguna harus mempunyai pemahaman yang adil tentang

  • GitHub
  • Django
  • Rangka kerja rehat Django

Kami akan melaksanakan ini dalam 3 langkah mudah

  • 1. sediakan GitHub
  • 2. sediakan Django
  • 3. ujian titik akhir pengesahan

1. Sediakan GitHub

Buat bukti kelayakan OAuth GitHub anda dengan pergi ke tetapan pada akaun GitHub anda, tatal ke bawah ke tempat anda melihat tetapan Pembangun, klik pada Apl OAuth seperti yang ditunjukkan di bawah.
Using dj-rest-auth to integrate GitHub authentication in your Django projectJika anda mempunyai apl sedia ada, anda boleh mengeditnya lagi, anda boleh membuat apl baharu dengan mengklik Apl OAuth Baharu dan buat apl baharu, berikan nama yang jelas dan deskriptif untuk apl itu, tambahkan pada URL Halaman Utama anda http:/ /localhost:8000/ anda mungkin mahu menggantikan localhost: untuk 127.0.0.1: jika itu cara anda telah mengkonfigurasi apl Django anda untuk menjalankan titik ialah apa jua konfigurasi yang anda sediakan GitHub harus sepadan dengan apa yang anda ada pada apl anda untuk mengelakkan ralat pelayan dilemparkan, tambahkan pada URL panggilan balik Kebenaran url panggil balik ini http://localhost:8000/api/auth/github/login/callback/ persediaan anda harus mencerminkan perkara yang anda lihat dalam imej di bawah.
Using dj-rest-auth to integrate GitHub authentication in your Django projectSalin dan simpan ID Pelanggan dan Rahsia Pelanggan anda seperti yang ditunjukkan di bawah untuk kegunaan kemudian pada projek Django anda Using dj-rest-auth to integrate GitHub authentication in your Django project

2. Sediakan Django

Jalankan pip install django-allauth dj-rest-auth requests di lain untuk memasang pakej ini. Dalam fail settings.py apl anda tambahkan blok kod berikut pada
anda

SOCIALACCOUNT_PROVIDERS = {
    'github': {
        'APP': {
            'client_id': '<github_client_id>',
            'secret': '<github_secret_keys>',
            'key': ''
        }
    }
}

SITE_ID = 1
Salin selepas log masuk

jika anda ingin menangkap e-mel pengguna yang disahkan dalam pentadbir, anda boleh memasukkan baris kod ini ke fail settings.py projek anda

ACCOUNT_EMAIL_REQUIRED = True
Salin selepas log masuk

Kami terus mengubah suai fail settings.py kami dengan menambah blok kod berikut

'rest_framework',
'rest_framework.authtoken',
'dj_rest_auth',

'django.contrib.sites',

'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.github'
Salin selepas log masuk


dalam middlesware fail settings.py anda sertakan baris kod ini

'allauth.account.middleware.AccountMiddleware',
Salin selepas log masuk

Akhir sekali kami mengubah suai fail urls.py projek dengan menambah blok kod berikut

from allauth.socialaccount.providers.github import views as github_views

path('api/auth/github/login/', github_views.oauth2_login, name='github_login'),
path('api/auth/github/login/callback/', github_views.oauth2_callback, name='github_callback'),
Salin selepas log masuk

NB: Pengubahsuaian hendaklah dilakukan dalam fail urls.py projek dan bukan fail urls.py apl

3. Uji titik akhir pengesahan

Selesai semua? lawati titik akhir http://localhost:8000/api/auth/github/login/ anda harus dialihkan ke halaman seperti ini Using dj-rest-auth to integrate GitHub authentication in your Django project dan apabila anda mengklik butang Teruskan anda harus dialihkan ke halaman kebenaran GitHub Using dj-rest-auth to integrate GitHub authentication in your Django project

Pertimbangan tambahan

Anda dapati selepas pengesahan berjaya anda dialihkan ke http://localhost:8000/accounts/profile/ yang memaparkan halaman ralat 404. Using dj-rest-auth to integrate GitHub authentication in your Django project

Untuk membetulkannya, kami boleh membuat titik akhir /accounts/profile pada fail urls.py apl anda dan kemudian membuat paparan relatif untuk titik akhir itu. Jika titik akhir dan pandangan anda disediakan dengan betul maka anda kini seharusnya melihat halaman ini dan bukannya halaman ralat 404 Using dj-rest-auth to integrate GitHub authentication in your Django project

Perbezaan antara dj-auth-rest dan social-auth-app-django

dj-auth-rest dan social-auth-app-django ialah kedua-dua perpustakaan yang digunakan untuk memudahkan pengesahan dalam projek Django, tetapi ia memenuhi keperluan yang berbeza dan beroperasi secara berbeza

dj-auth-rest digunakan untuk projek berasaskan API manakala social-auth-app-django digunakan untuk projek berasaskan web dan kedua-duanya boleh digunakan pada projek yang sama

Kesimpulan

Mengintegrasikan GitHub OAuth ke dalam aplikasi Django anda menyediakan cara yang selamat dan mesra pengguna untuk individu log masuk menggunakan bukti kelayakan GitHub mereka.

Menggunakan panduan ini, anda boleh meningkatkan keselamatan aplikasi anda, menyelaraskan proses log masuk dan menambah baik keseluruhan pengalaman pengguna semasa mengakses data pengguna yang berkaitan.

Atas ialah kandungan terperinci Menggunakan dj-rest-auth untuk menyepadukan pengesahan GitHub dalam projek Django anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan