Django allauth google login с идентификацией Google

Библиотека google sign in javascript устаревает:

Предупреждение: Платформенная библиотека Google Sign-In JavaScript для Web является устарела и будет недоступна для загрузки после 31 марта 2023 года. Решения решения в этом руководстве основаны на этой библиотеке и поэтому также устарели.

Вместо этого используйте новое решение Google Identity Services for Web, чтобы быстро и легко регистрировать пользователей в вашем приложении, используя их учетные записи Google. учетные записи.

По умолчанию новые клиентские идентификаторы теперь блокируются от использования старой библиотеки платформы. библиотеки платформы; существующие клиентские идентификаторы не затрагиваются. Новые клиентские идентификаторы созданные до 29 июля 2022 года, могут установить имя_плагина, чтобы разрешить использование устаревшей библиотеки платформы Google.

Существующая реализация oauth от django-allauth требует от пользователей либо использовать перенаправление на основе сервера с кодом Oauth2.0, либо отправлять access_token и id_token для обработки логина,

Реализация google теперь дает нам только id_token, а все необходимые данные, такие как имя, изображение профиля и т.д., включены в токен JWT. Таким образом, вход не удается, поскольку я не могу отправить как токен доступа, так и токен id.

Для решения этой проблемы мне на ум приходят два подхода:

  1. Либо я переопределяю представление социального входа и соответствующую функцию process_login из библиотеки allauth и делаю так, чтобы она проверяла токен id и вводила данные пользователя оттуда ИЛИ
  2. .
  3. Иметь совершенно другой маршрут API, который просто принимает id_token, декодирует его, регистрирует пользователя и отвечает токеном пользователя из нашего бэкенда.

Я хотел бы узнать мнения о том, каким должен быть дальнейший путь для этого или есть ли другой возможный путь, который я не учел.

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