Аутентификация Google в Django и React

Используя django-allauth, я включил аутентификацию google на бэкенде. Я могу войти в свой проект Django и все такое.

Теперь я хочу связать эту аутентификацию с моим React frontend, чтобы я мог войти/зарегистрироваться с помощью google на http://127.0.0.1:3000.

Что мне нужно сделать?

Вы можете использовать библиотеки Google для javascript или какую-нибудь библиотеку npm, которая делает это за вас.

После входа в систему через аккаунт Google и получения связанных ключей аутентификации / данных на стороне front-end, вы отправляете их в Django и django-allauth должен обработать эти данные для вас - у вас должно быть специальное представление для этого, связанное в urls.py.

После такого запроса будет создан либо новый социальный аккаунт, либо уже существующий.

Возможно, потребуется адаптировать некоторые оригинальные представления управления социальными аккаунтами для обработки данных, которые вы отправляете из React.

Помните, что в настоящее время Google переходит на Google Identity Services, который работает немного иначе, чем старый метод, реализованный в django-allauth - уже есть вопрос, поднятый в репозитории

https://github.com/pennersr/django-allauth/issues/3074

Для использования Google Identity вы можете попробовать использовать:

https://www.npmjs.com/package/@react-oauth/google

или любой другой библиотеки, которая поддерживает это

После этого, если вы хотите сделать это самостоятельно новым способом на стороне Django, вы можете отправить JWT-токен, который приходит от Google в Django, проверить его на основе документации Google и затем создать социальный аккаунт / войти. В настоящее время это требует переопределения некоторых оригинальных представлений / форм django-allauth для социальных аккаунтов.

https://developers.google.com/identity

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