Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden Sie dj-rest-auth, um die GitHub-Authentifizierung in Ihr Django-Projekt zu integrieren

Verwenden Sie dj-rest-auth, um die GitHub-Authentifizierung in Ihr Django-Projekt zu integrieren

Susan Sarandon
Susan SarandonOriginal
2024-11-22 02:27:11432Durchsuche

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

  • Erstellen oder melden Sie nahtlos einen Benutzer mit seinen GitHub-Anmeldeinformationen an
  • Benutzeranmeldeinformationen zur späteren Verwendung speichern

Voraussetzung

Um das Beste aus diesem Artikel herauszuholen, sollten Benutzer ein angemessenes Verständnis dafür haben

  • GitHub
  • Django
  • Django Rest Framework

Wir werden dies in 3 einfachen Schritten umsetzen

  • 1. GitHub einrichten
  • 2. Django einrichten
  • 3. Authentifizierungsendpunkt testen

1. GitHub einrichten

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.
Using dj-rest-auth to integrate GitHub authentication in your Django projectWenn 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.
Using dj-rest-auth to integrate GitHub authentication in your Django projectKopieren und speichern Sie Ihre Client-ID und Client-Geheimnisse wie unten gezeigt, um sie später in Ihrem Django-Projekt zu verwenden Using dj-rest-auth to integrate GitHub authentication in your Django project

2. Richten Sie Django ein

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

3. Testen Sie den Authentifizierungsendpunkt

Alles erledigt? Besuchen Sie den Endpunkt http://localhost:8000/api/auth/github/login/. Sie sollten zu einer Seite wie dieser weitergeleitet werden Using dj-rest-auth to integrate GitHub authentication in your Django project und wenn Sie auf die Schaltfläche „Weiter“ klicken, sollten Sie zur Autorisierungsseite von GitHub weitergeleitet werden Using dj-rest-auth to integrate GitHub authentication in your Django project

Zusätzliche Überlegung

Sie bemerken, dass Sie nach einer erfolgreichen Authentifizierung zu http://localhost:8000/accounts/profile/ weitergeleitet wurden, wo eine 404-Fehlerseite angezeigt wird. Using dj-rest-auth to integrate GitHub authentication in your Django project

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 Using dj-rest-auth to integrate GitHub authentication in your Django project

Unterschied zwischen dj-auth-rest und social-auth-app-django

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

Abschluss

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn