Artikel ini ialah panduan ringkas tentang cara melaksanakan GitHub OAuth untuk pengesahan pengguna yang selamat.
Dalam panduan ini kita akan dapat
Untuk mendapatkan yang terbaik daripada artikel ini, pengguna harus mempunyai pemahaman yang adil tentang
Kami akan melaksanakan ini dalam 3 langkah mudah
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.
Jika 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.
Salin dan simpan ID Pelanggan dan Rahsia Pelanggan anda seperti yang ditunjukkan di bawah untuk kegunaan kemudian pada projek Django anda
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
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
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'
dalam middlesware fail settings.py anda sertakan baris kod ini
'allauth.account.middleware.AccountMiddleware',
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'),
NB: Pengubahsuaian hendaklah dilakukan dalam fail urls.py projek dan bukan fail urls.py apl
Selesai semua? lawati titik akhir http://localhost:8000/api/auth/github/login/ anda harus dialihkan ke halaman seperti ini dan apabila anda mengklik butang Teruskan anda harus dialihkan ke halaman kebenaran GitHub
Anda dapati selepas pengesahan berjaya anda dialihkan ke http://localhost:8000/accounts/profile/ yang memaparkan halaman ralat 404.
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
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
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!