Heim > Artikel > Backend-Entwicklung > Verwenden Sie dj-rest-auth, um die GitHub-Authentifizierung in Ihr Django-Projekt zu integrieren
Dieser Artikel ist eine einfache Anleitung zur Implementierung von GitHub OAuth für eine sichere Benutzerauthentifizierung.
In diesem Leitfaden werden wir dazu in der Lage sein
Um das Beste aus diesem Artikel herauszuholen, sollten Benutzer ein angemessenes Verständnis dafür haben
Wir werden dies in 3 einfachen Schritten umsetzen
Erstellen Sie Ihre GitHub-OAuth-Anmeldeinformationen, indem Sie zu den Einstellungen Ihres GitHub-Kontos gehen, nach unten scrollen, bis Sie die Entwicklereinstellungen sehen, und auf OAuth-Apps klicken, wie unten gezeigt.
Wenn Sie eine bestehende App haben, können Sie diese bearbeiten. Alternativ können Sie eine neue erstellen, indem Sie auf „Neue OAuth-App“ klicken und eine neue erstellen. Geben Sie einen klaren und aussagekräftigen Namen für die App ein und fügen Sie Ihrer Homepage-URL http:/ hinzu. /localhost:8000/ Sie möchten möglicherweise „localhost:“ durch 127.0.0.1 ersetzen: Wenn Sie Ihre Django-App auf diese Weise für die Ausführung konfiguriert haben, sollten Sie darauf achten, dass die Konfiguration, die Sie auf GitHub eingerichtet haben, mit Ihrer Konfiguration übereinstimmen sollte Um zu vermeiden, dass Serverfehler in Ihrer App ausgelöst werden, fügen Sie zur Autorisierungs-Rückruf-URL diese Rückruf-URL http://localhost:8000/api/auth/github/login/callback/ hinzu. Ihre Einrichtung sollte das widerspiegeln, was Sie im Bild unten sehen.
Kopieren und speichern Sie Ihre Client-ID und Client-Geheimnisse wie unten gezeigt, um sie später in Ihrem Django-Projekt zu verwenden
Führen Sie pip install django-allauth dj-rest-auth request in other aus, um diese Pakete zu installieren. Fügen Sie in der Datei „settings.py“ Ihrer App den folgenden Codeblock zu Ihrem
hinzu
SOCIALACCOUNT_PROVIDERS = { 'github': { 'APP': { 'client_id': '<github_client_id>', 'secret': '<github_secret_keys>', 'key': '' } } } SITE_ID = 1
Wenn Sie die E-Mail-Adresse eines authentifizierten Benutzers im Administrator erfassen möchten, können Sie diese Codezeile in die Datei „settings.py“ Ihres Projekts einfügen
ACCOUNT_EMAIL_REQUIRED = True
Wir ändern weiterhin unsere Datei „settings.py“, indem wir den folgenden Codeblock hinzufügen
'rest_framework', 'rest_framework.authtoken', 'dj_rest_auth', 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.github'
Fügen Sie in der Middlesware Ihrer Datei „settings.py“ diese Codezeile ein
'allauth.account.middleware.AccountMiddleware',
Zuletzt ändern wir die Projektdatei urls.py, indem wir den folgenden Codeblock hinzufügen
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'),
Hinweis: Die Änderung sollte in der urls.py-Datei des Projekts und nicht in der urls.py-Datei der App erfolgen
Alles erledigt? Besuchen Sie den Endpunkt http://localhost:8000/api/auth/github/login/. Sie sollten zu einer Seite wie dieser weitergeleitet werden und wenn Sie auf die Schaltfläche „Weiter“ klicken, sollten Sie zur Autorisierungsseite von GitHub weitergeleitet werden
Sie bemerken, dass Sie nach einer erfolgreichen Authentifizierung zu http://localhost:8000/accounts/profile/ weitergeleitet wurden, wo eine 404-Fehlerseite angezeigt wird.
Um dies zu beheben, können wir einen Endpunkt /accounts/profile für die urls.py-Datei Ihrer Apps erstellen und dann relative Ansichten für diesen Endpunkt erstellen. Wenn Ihr Endpunkt und Ihre Ansichten korrekt eingerichtet sind, sollte jetzt anstelle der 404-Fehlerseite diese angezeigt werden
dj-auth-rest und social-auth-app-django sind beides Bibliotheken, die zur Erleichterung der Authentifizierung in Django-Projekten verwendet werden, aber sie gehen auf unterschiedliche Bedürfnisse ein und funktionieren anders
dj-auth-rest wird für ein API-basiertes Projekt verwendet, während social-auth-app-django für ein webbasiertes Projekt verwendet wird und beide für dasselbe Projekt verwendet werden können
Die Integration von GitHub OAuth in Ihre Django-Anwendung bietet Einzelpersonen eine sichere und benutzerfreundliche Möglichkeit, sich mit ihren GitHub-Anmeldeinformationen anzumelden.
Mit diesem Leitfaden können Sie die Sicherheit Ihrer Anwendung erhöhen, den Anmeldevorgang optimieren und das allgemeine Benutzererlebnis verbessern, während Sie auf relevante Benutzerdaten zugreifen.
Das obige ist der detaillierte Inhalt vonVerwenden Sie dj-rest-auth, um die GitHub-Authentifizierung in Ihr Django-Projekt zu integrieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!