Я использую Django REST Framework и использую эту библиотеку для обеспечения аутентификации на основе токенов для приложений внешнего интерфейса.
Существует реализация входа в Google с использованием плагина django-allauth
.
Я хочу сгенерировать токен доступа при входе пользователя в систему с помощью учетной записи в социальной сети.
Для обработки входа в систему соцсети и создания учетной записи в социальной сети я создал это представление.
class GoogleLoginView(LoginView):
"""
Enable login using google
"""
adapter_class = GoogleOAuth2Adapter
serializer_class = CustomSocialLoginSerializer
def login(self):
self.user = self.serializer.validated_data['user']
self.token = TokenView().create_token_response(self.request)
return self.token
def post(self, request, *args, **kwargs):
self.request = request
self.serializer = self.get_serializer(
data=self.request.data,
context={'request': request}
)
self.serializer.is_valid(raise_exception=True)
url, header, body, status_ = self.login()
return Response(json.loads(body), status=status_)
данные запроса имеют user
экземпляр вместе с client_id
и client_secret
приложения.
Но это дает ошибку
'{"error": "unsupported_grant_type"}'
Версия
django -oauth-инструментарий == 1.3.0