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.
Для решения этой проблемы мне на ум приходят два подхода:
- Либо я переопределяю представление социального входа и соответствующую функцию
process_login
из библиотеки allauth и делаю так, чтобы она проверяла токен id и вводила данные пользователя оттуда ИЛИ .
- Иметь совершенно другой маршрут API, который просто принимает
id_token
, декодирует его, регистрирует пользователя и отвечает токеном пользователя из нашего бэкенда.
Я хотел бы узнать мнения о том, каким должен быть дальнейший путь для этого или есть ли другой возможный путь, который я не учел.