Настройка входа в 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.

И возможно ли изменить тип гранта на код авторизации, и если да, то что нужно изменить?

Вернуться на верх