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 № 1Administrator 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:
- 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 - Upewnij się, że użytkownik jest oflagowany jako
is_staff
, w przeciwnym razie dostęp do administratora będzie zabroniony.