Как связать несколько социальных аккаунтов с одним пользователем в Django Allauth с помощью пользовательской модели пользователя и компании?

Я работаю над проектом Django, в котором я хочу аутентифицировать пользователей с помощью нескольких социальных аккаунтов и связать их с одним аккаунтом в моих пользовательских моделях. Я использую django-allauth для социальной аутентификации, и у меня есть пользовательская модель User вместе с моделью Company. Модель Company имеет ForeignKey к модели User.

Цель: Я хочу, чтобы пользователь мог входить в систему, используя несколько социальных аккаунтов (например, Google, Facebook), но все эти аккаунты должны быть связаны с одним и тем же пользователем в моей модели компании. По сути, пользователь должен иметь возможность аутентифицироваться через разных провайдеров, но при этом привязываться к одной учетной записи пользователя в моей системе.

Моя установка: Django версии: 4.x django-allauth версия: 0.44.x У меня есть пользовательская модель User. Модель Company имеет ForeignKey к модели User.

С чем мне нужна помощь:

  1. Как настроить django-allauth, чтобы один пользователь мог проходить аутентификацию через несколько социальных аккаунтов и связывать их с одной записью пользователя?

  2. Как сделать так, чтобы все аутентифицированные социальные аккаунты указывали на одного и того же пользователя, при этом привязывая их к модели Company?

3)Есть ли какие-либо специфические настройки в django-allauth или изменения в промежуточном ПО, необходимые для того, чтобы это работало? Я уже настроил базовую социальную аутентификацию с помощью django-allauth, но когда пользователь пытается войти в систему, используя другой социальный аккаунт, он создает нового пользователя вместо того, чтобы связать его с существующим.

У меня работает базовая социальная аутентификация в соответствии с документацией django-allauth, но часть, связанная с несколькими учетными записями, не работает так, как ожидалось. Любые советы или примеры будут очень признательны!

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