/ / Integracja python-social-auth (social-app-django) do użycia z administratorem Django - python, django, python-social-auth

Zintegruj program python-social-auth (social-app-django) z administratorem Django - python, django, python-social-auth

Chcę utworzyć aplikację, która korzysta z administratora django, ale zezwala na logowanie za pośrednictwem google (moje firmowe konto google) zamiast domyślnego ModelAdmin w django.

Obecnie wygląda tak social-app-django (Google) jest dobrym rozwiązaniem, ale po zainstalowaniu i skonfigurowaniu projektu nie jest dla mnie jasne, w jaki sposób mogę zezwolić loginu administratora django na użycie social-app-django poświadczenie. Próbowałem skonfigurować mój projekt zgodnie z opisem tutaj http://python-social-auth.readthedocs.io/en/latest/configuration/django.html ale nie jest jasne, jak można to zintegrować z administratorem django.

znalazłem to snippit (co wydaje się przeterminowany) i dodałem go, ale dostanę 404, gdy próbuję się dostać /admin/:

Nie znaleziono strony (404) Metoda żądania: Żądanie GET URL: http://127.0.0.1:8000/accounts/login/?next=/admin/login/%3Fnext%3D/admin/ Korzystanie z URLconf zdefiniowanego w telos.adresy URL, Django wypróbował te adresy URL wzorce w następującej kolejności: ^ login / (? P [^ /] +) / $ [name = "begin"] ^ kompletny / (? P [^ /] +) / $ [nazwa = "kompletny"] ^ rozłącz / (? P [^ /] +) / $ [name = "disconnect"] ^ rozłącz / (? P [^ /] +) / (? P [^ /] +) / $ [name = "disconnect_indywidualny"] ^ admin / Aktualna ścieżka, accounts / login /, nie pasuje do żadnego z nich.

Jeśli zdejmę wycinek, /admin/ przekieruje do /admin/login/ i podczas próby logowania zwróć tekst BŁĄD:

Wprowadź poprawną nazwę użytkownika i hasło do konta personelu. Należy zauważyć, że w obu polach rozróżniana jest wielkość liter.

Dodatkowo konfiguracja, Dodałem następujące elementy do mojego 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

Czy ktoś może mnie kierować, w jaki sposób mogę skonfigurować mój projekt, aby umożliwić mi logowanie się do administratora django social-app-django (Google)?

Odpowiedzi:

1 dla odpowiedzi № 1

Administrator Django używa auth aplikacja contrib, więc każdy proces uwierzytelniania uruchamia ten sam mechanizm, co użytkownik logujący się do sekcji niebędącej administratorem i zostanie przetworzony przez python-social-auth backends, jeśli są zdefiniowane w AUTHENTICATION_BACKENDS oprawa.

Aby to działało, musisz:

  1. Dodać Login with Google link (link do /login/google-oauth2) do formularza logowania. Możesz zastąpić domyślny formularz logowania, dodając admin / login.html szablon lub definiując zwyczaj AdminSite
  2. Upewnij się, że użytkownik jest oflagowany jako is_staff, w przeciwnym razie dostęp do administratora będzie zabroniony.