Как настроить SocialAccount на django-allauth?

Итак, я интегрирую django-allauth в приложение django. Таблица Users имеет не только email в качестве уникального поля. В ней есть email + company, поэтому данные могут быть следующими:

ID  Email             Company
---------------------------------
1   john@example.com  Google
2   john@example.com  Microsoft
...
9   john@example.com  Apple

Обратите внимание, что есть три учетные записи с одинаковой электронной почтой, но в разных компаниях. В зависимости от различного интерфейса (apple.my-app.com; google.my-app.com) Джон может войти во все эти учетные записи.

Теперь мы хотим интегрировать SocialLogin в это приложение. В текущем подходе django-allauth socialaccount сохраняет уникальность учетных записей с помощью unique_together = ("provider", "uid"). Каждый аккаунт также связан с одним единственным аккаунтом пользователя. Смотрите здесь

Мой рабочий подход был бы unique_together = ("provider", "uid", "company"), таким образом, имея таблицу Social Accounts вида:

User  UID   Provider   Company
---------------------------------
1     abc   GitHub     Google
2     abc   GitHub     Microsoft
9     abc   GitHub     Apple

Есть идеи, как этого можно достичь БЕЗ ФОРКИРОВКИ РЕПО?

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