Как настроить 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
Есть идеи, как этого можно достичь БЕЗ ФОРКИРОВКИ РЕПО?