Совместная аутентификация на нескольких сайтах django
У меня есть 3 сайта django и они развернуты на 3 поддоменах, скажем так:
- a.example.com
- b.example.com
- c.example.com
Все они на 95% похожи, только используют 3 разные базы данных и имеют логин пользователя. Проблема в том, что мне нужно войти во все 3 из них, почему я не могу войти в один и поделиться им с двумя другими сайтами? Я пробовал использовать несколько баз данных/маршрутизацию, как описано в документации Django, но я не могу разделить модель пользователя между несколькими базами данных. Как же это делают сайты вроде google? Я захожу на один из их сервисов, а все остальные автоматически регистрируют меня. Может ли кто-нибудь дать мне правильное руководство, как этого добиться?
Это полностью зависит от вашей реализации auth. Если вы используете сессии, то это будет сложно, потому что сессии хранятся в базе данных, файлах на сервере, памяти и т.д.. Поэтому между разными серверами они не могут быть общими Как работают сессии . Вы можете использовать сессии совместно, если у вас будет другой сервер авторизации, к которому другие серверы будут делать запросы. Но лучше использовать не сессии, а jwt-токены, Узнайте больше о jwt. JWT-токены хранятся в браузере пользователя (обычно в локальном хранилище). А сервер может расшифровать их и проверить, аутентифицирован ли пользователь.