/ / Intégrer python-social-auth (social-app-django) à utiliser avec l'administrateur Django - python, django, python-social-auth

Intégrez python-social-auth (social-app-django) à utiliser avec l'administrateur Django - python, django, python-social-auth

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 № 1

Django 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:

  1. 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
  2. Assurez-vous que l'utilisateur est marqué comme is_staffsinon, l’accès à l’administrateur sera interdit.