7

Muszę zaimplementować API REST dla aplikacji mobilnej.Django REST Framework i python-social-auth dla użytkownika rejestracji/logowania

chciałbym używać Django REST ramy.

Użytkownik (mobile strona) może zarejestrować konto tylko za pomocą Facebooka, chciałbym użyć python-auth-społecznego dla tej rejestracji/logowania.

Jestem nowy na tym więc widziałem wiele samouczka/dokumenty/przykład o tym.

Znalazłem tylko kompletny samouczek dotyczący Django + python_social_auth, ale chciałbym wiedzieć dokładnie najlepsze praktyki, aby dokonać rejestracji/logowania użytkownika z REST-api.

Gdzie mogę znaleźć pełną przykład?

W moim prostym teście Mam też problem: Kiedy próbuję użyć tego przykładu:

@psa('social:complete') 
def register_by_access_token(request, backend): 
    # This view expects an access_token GET parameter, if it's needed, 
    # request.backend and request.strategy will be loaded with the current 
    # backend and strategy. 
    token = request.GET.get('access_token') 
    user = request.backend.do_auth(request.GET.get('access_token')) 
    if user: 
     login(request, user) 
     return 'OK' 
    else: 
     return 'ERROR' 

mogę uzyskać ten błąd:

u'social' is not a registered namespace

Próbowałem też dodać to SOCIAL_AUTH_URL_NAMESPACE = 'myApp' w moje ustawienia, ale nie rozwiązuje problemu.

Odpowiedz

6

Jeśli nie jest zbyt późno, to dlaczego nie skorzystać https://github.com/pennersr/django-allauth i https://github.com/Tivix/django-rest-auth które są zaprojektowane do pracy razem i uproszczenie API opartego (społeczny) Zaloguj/Wyloguj/tokena resetowania hasła/zresetowanie hasła z tokena płynie itp.

+0

Dzięki za prośbę! Czy django-all-auth jest zintegrowany z django-rest-auth? po prostu wykonaj to dla instalacji i konfiguracji obu? http://django-rest-auth.readthedocs.org/en/latest/installation.html – Safari

+2

Musisz zainstalować Django restframework i Django allauth oddzielnie, a następnie tak można postępować zgodnie z instrukcjami zamieszczonymi w ten link. Jeśli chcesz zobaczyć, jak zintegrować się z frontendem, upewnij się, że zapoznałeś się z ich kanciastą aplikacją https://github.com/Tivix/angular-django-registration-auth –

2

wiem, że użytkownik już wybrana odpowiedź, ale ponieważ odpowiedź kieruje nas do innej biblioteki, oto moja odpowiedź, w przypadku gdy ktoś potrzebny później:

„społeczny” jest nazw trzeba dać do adresów URL dostarczonych przez python-social-auth. Musisz dodać wiersz w następujący sposób do listy urlpatterns twojego projektu urls.py:

urlpatterns = [ 
    url(r'^social/', include('social.apps.django_app.urls', namespace="social") 
    # All other remaining urls here. 
]