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, и это было причиной ошибки.