Je souhaite créer une application qui utilise l'administrateur Django, mais autorise les connexions via Google (compte google de ma société) à la place de ModelAdmin, la valeur par défaut de Django.
Actuellement, il semble que social-app-django (Google) est la voie à suivre, mais après avoir installé et configuré un projet, il n’est pas clair pour moi comment autoriser les logins d’admin de Django à utiliser le social-app-django authentification. J'ai essayé de configurer mon projet comme décrit ici http://python-social-auth.readthedocs.io/en/latest/configuration/django.html mais on ne sait pas comment cela peut être intégré à l’administrateur de Django.
j'ai trouvé ça extrait (qui semble périmé), et l'a ajouté, mais obtenez un 404 quand j'essaie de /admin/
:
Page non trouvée (404) Méthode de requête: requête GET URL: http://127.0.0.1:8000/accounts/login/?next=/admin/login/%3Fnext%3D/admin/ Utilisation de l'URLconf défini dans telos.les URL, Django a essayé ces URL modèles, dans cet ordre: ^ login / (? P [^ /] +) / $ [name = "begin"] ^ complet / (? P [^ /] +) / $ [nom = "complet"] ^ déconnecter / (? P [^ /] +) / $ [nom = "déconnecter"] ^ déconnecter / (? P [^ /] +) / (? P [^ /] +) / $ [name = "disconnect_individual"] ^ admin / Le chemin actuel, comptes / login /, ne correspond à aucun de ceux-ci.
Si je retire l'extrait, /admin/
va rediriger vers /admin/login/
et lors d'une tentative de connexion, retourne le texte ERROR:
Veuillez saisir le nom d'utilisateur et le mot de passe corrects pour un compte d'employé. Noter que les deux champs peuvent être sensibles à la casse.
En plus de configuration, J’ai ajouté ce qui suit à mon 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
Quelqu'un peut-il m'indiquer comment configurer mon projet pour me permettre de me connecter à l'administrateur Django via social-app-django (Google)?
Réponses:
1 pour la réponse № 1Django Admin utilise le auth
contrib, de sorte que tout processus d’authentification déclenche le même mécanisme qu’un utilisateur se connectant à une section non-admin et sera traité par python-social-auth
backends si elles sont définies dans AUTHENTICATION_BACKENDS
réglage.
Pour que cela fonctionne, vous devrez:
- Ajouter un
Login with Google
lien (lien vers/login/google-oauth2
) au formulaire de connexion. Vous pouvez remplacer le formulaire de connexion par défaut en ajoutant un admin / login.html modèle ou en définissant une coutume AdminSite - Assurez-vous que l'utilisateur est marqué comme
is_staff
sinon, l’accès à l’administrateur sera interdit.