Ich möchte eine App erstellen, die den Django-Administrator verwendet, jedoch die Anmeldung über Google (mein Google-Firmenkonto) anstelle des Django-Standard-ModelAdmin zulässt.
Derzeit sieht es so aus Social-App-Django (Google) ist der Weg zu gehen, aber nachdem ich ein Projekt installiert und eingerichtet habe, ist mir nicht klar, wie ich es zulassen kann, dass django admin logins die Social-App-Django Authentifizierung. Ich habe versucht, mein Projekt wie hier beschrieben zu konfigurieren http://python-social-auth.readthedocs.io/en/latest/configuration/django.html Es ist jedoch nicht klar, wie dies in den Django-Administrator integriert werden kann.
ich habe das gefunden Schnipsel (was scheint veraltet) und fügte es hinzu, aber ich bekomme eine 404, wenn ich versuche zu gehen /admin/
:
Seite nicht gefunden URL: http://127.0.0.1:8000/accounts/login/?next=/admin/login/%3Fnext%3D/admin/ Verwenden der in telos definierten URLconf.URLs, Django versuchte diese URL Muster in dieser Reihenfolge: ^ login / (? P [^ /] +) / $ [name = "begin"] ^ complete / (? P [^ /] +) / $ [name = "complete"] ^ Verbindung trennen / (? P [^ /] +) / $ [Name = "Verbindung trennen"] ^ trennen Sie / (? P [^ /] +) / (? P [^ /] +) / $ [name = "disconnect_individual"] ^ admin / Der aktuelle Pfad Konten / Login /, nicht mit diesen übereinstimmen.
Wenn ich den Schnipsel entferne, /admin/
wird umleiten zu /admin/login/
und beim Anmeldeversuch den ERROR-Text zurückgeben:
Bitte geben Sie den korrekten Benutzernamen und das Passwort für ein Mitarbeiterkonto ein. Bedenke, dass möglicherweise Groß-und Kleinschreibung in beiden Feldern beachtet werden muss.
In Ergänzung zu AufbauIch habe folgendes hinzugefügt settings.py
:
projects / models.py (MyUser)
from django.contrib.auth.models import AbstractUser
class MyUser(AbstractUser):
pass
settings.py
# for identification of SOCIAL_AUTH_USER
# http://python-social-auth.readthedocs.io/en/latest/configuration/settings.html#user-model
SOCIAL_AUTH_USER_MODEL = "projects.MyUser"
AUTH_USER_MODEL = "projects.MyUser" # not sure if this is needed
Kann mir jemand sagen, wie ich mein Projekt einrichten kann, damit ich mich beim Django-Admin anmelden kann Social-App-Django (Google)
Antworten:
1 für die Antwort № 1Django Admin verwendet die auth
Contrib-Anwendung, so dass jeder Authentifizierungsprozess den gleichen Mechanismus auslöst wie ein Benutzer, der sich in einem Nicht-Admin-Bereich anmeldet, und dieser Vorgang wird von bearbeitet python-social-auth
Backends, wenn sie in definiert sind AUTHENTICATION_BACKENDS
Rahmen.
Damit es funktioniert, müssen Sie:
- Füge hinzu ein
Login with Google
Link (Link zu/login/google-oauth2
) zum Anmeldeformular. Sie können das Standard-Anmeldeformular durch Hinzufügen von a überschreiben admin / login.html Vorlage oder durch Definieren einer benutzerdefinierten AdminSite - Stellen Sie sicher, dass der Benutzer als gekennzeichnet ist
is_staff
ansonsten ist der Zugriff auf den Administrator verboten.