Facebook зарегистрироваться с помощью Django Allauth tastypie

Я работаю над мобильным приложением, которое позволяет пользователям регистрироваться через Facebook. Получив токен доступа от FB, я отправляю его на серверную часть Django.

Я пользуюсь вкусным пирогом и джанго-аллахом.

Как я могу использовать django-allauth для создания новой учетной записи пользователя / социальной сети с использованием токена доступа?

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

Объект 'AnonymousUser' не имеет атрибута 'email'

def facebook_login(self, request, **kwargs):
        self.method_check(request, allowed=['post'])

        data = self.deserialize(request, request.body, format=request.META.get('CONTENT_TYPE', 'applicaton/json'))

        if "access_token" not in request.body:
            data = {"message": 'missing access token'}
            return self.error_response(request, data, response_class=http.HttpBadRequest)

        access_token = data.get('access_token', '')

        try:
            app = SocialApp.objects.get(provider="facebook")
            token = SocialToken(app=app, token=access_token)

            login = fb_complete_login(app, token)
            login.token = token
            login.state = SocialLogin.state_from_request(request)
            ret = complete_social_login(request, login)

            #if we get here we've succeeded
            return self.create_response(request, {
                'email': request.user.email,
                'api_key': request.user.api_key.key
                }, HttpAccepted)

        except Exception as ex:
            data = {"message": ex}
            return self.error_response(request, data, response_class=http.HttpBadRequest)

1 ответ

Этот код на самом деле работает, проблема заключалась в установке SOCIALACCOUNT_AUTO_SIGNUP=false, и это было причиной ошибки.

Другие вопросы по тегам