Настройка входа в google с помощью фреймворка Django rest framework плюс React Js
просмотров
class GoogleCreateAccount(APIView):
permission_classes = [permissions.AllowAny]
def post(self, request):
reg_serializer = RegisterSerializer(data=request.data)
if reg_serializer.is_valid():
new_user = reg_serializer.save()
if new_user:
# add these
r = requests.post('http://127.0.0.1:8000/auth/token', data={
'username': new_user.email,
'id_token': request.data['code'],
#'password': request.data['password'],
'client_id': '304129974707-79jslq7l318va16eacni8cveokn237g8.apps.googleusercontent.com',
'client_secret': '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',
'grant_type': 'id_token'
})
return Response(r.json(), status=status.HTTP_201_CREATED)
return Response(reg_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
urls.py
urlpatterns = [
path('auth/', include('drf_social_oauth2.urls',namespace='drf')),
path('googleregister/',GoogleCreateAccount.as_view()),
]
Я настраивал google login с помощью django и react app, я настраивал его на основе https://abhik-b.medium.com/step-by-step-guide-to-email-social-logins-in-django-5e5436e20591 вышеуказанной ссылки. Это работает на bcakend, как и ожидалось. Но для получения токена доступа я даю следующие параметры
{
clientid:
client secret:
grant type: password
username:
password:
}
Но в react он не смог получить параметр password, поэтому он не подключается к остальному вызову api. Я не знаю, как именно решить эту проблему. Пожалуйста, подскажите мне лучшую ссылку или документацию по настройке google login для django rest framework в качестве backend и react js в качестве frontend.
И возможно ли изменить тип гранта на код авторизации, и если да, то что нужно изменить?