Django REST Framework и python-social-auth для регистрации / входа пользователя

Я должен реализовать некоторые REST API для мобильного приложения.

Я хотел бы использовать Django REST Framework.

Пользователь (мобильная сторона) может зарегистрировать аккаунт только через Facebook, я бы использовал python-social-auth для этой регистрации / входа в систему.

Я новичок в этом, поэтому я видел много учебника / документации / пример об этом.

Я нашел только полный учебник о Django + python_social_auth, но я бы точно знал, как лучше всего регистрировать / регистрировать пользователя с помощью REST-api.

Где я могу найти полный пример?

В моем простом тесте у меня также есть проблема: Когда я пытаюсь использовать этот пример:

@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'

Я получаю эту ошибку:

u'social 'не является зарегистрированным пространством имен

Я пытался также добавить это SOCIAL_AUTH_URL_NAMESPACE = 'myApp' в моих настройках но это не решит проблему.

2 ответа

Решение

Если еще не слишком поздно, почему бы не использовать https://github.com/pennersr/django-allauth и https://github.com/Tivix/django-rest-auth которые предназначены для совместной работы и упрощения API на основе) логин / выход из системы / сброс пароля токена / сброс пароля из токена и т. д.

Я знаю, что пользователь уже выбрал ответ, но так как этот ответ направляет нас в другую библиотеку, вот мой ответ, если кому-то он понадобится позже:

"social" - это пространство имен, которое вы должны дать URL-адресам, предоставленным python-social-auth. Вы должны включить следующую строку в список urlpatterns вашего проекта urls.py:

urlpatterns = [
    url(r'^social/', include('social.apps.django_app.urls', namespace="social")
    # All other remaining urls here.
]
Другие вопросы по тегам