Django-allauth: применение политик для определенных пользователей

Я собираюсь реализовать django-allauth для существующего проекта, в основном для добавления OTP и единого входа.

У меня есть SPA, поэтому мне понадобится allauth API, как описано здесь .

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

В зависимости от Organization, к которой принадлежит пользователь (или в которую он приглашен), могут быть разные требования.

Мне нужно иметь возможность принудительно использовать OTP или единый вход (от определенного провайдера), но только для определенных пользователей. Это относится как к существующим, так и к новым пользователям.

Примеры потоков:

  • Новый пользователь приглашается в организацию с применением OTP
    • Пользователь регистрируется
    • Пользователь принимает приглашение
    • Пользователь вынужден настроить OTP из-за политики организации
  • Новый пользователь приглашается в организацию, в которой применяется единый вход
    • Из-за единого входа пользователь может зарегистрироваться только с определенным пользователем единого входа
  • Организация добавляет принудительное применение OTP для своих пользователей
    • Любой существующий пользователь организации, который войдет в систему, должен будет настроить OTP, прежде чем продолжить
  • Существующий пользователь приглашается в организацию с политикой
    • Пользователь входит в систему
    • Пользователь принимает приглашение
    • Пользователь вынужден добавить OTP/SSO в соответствии с политикой

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

Может ли django-allauth справиться с такими случаями? Или мне лучше реализовать что-то более нестандартное?

Я был бы очень признателен за любые указания на код, примеры псевдокода и потоки, которые помогут мне понять, как это будет работать в моем сценарии!

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