Shshzik
@Shshzik
Начинающий

Как использовать сессии на двух сайтах в django?

Есть 2 сайта.
Структура сайта такова:
env ( Окружение )
one ( основная папка проекта )
-manage.py ( файл управления первого сайта )
-manage_another.py ( файл управления второго сайта )
-one
--settings_all.py ( Файл настроек с общими настройками для обоих сайтов )
--settings.py ( Файл настроек первого сайта )
--settings_another.py ( Файл настроек второго сайта )
--wsgi.py ( wsgi первого сайта )
--wsgi_another ( wsgi второго сайта )

У этих двух сайтов одна БД.
Запускаю 2 экземпляра runserver:
python manage.py runserver ( Для первого сайта )
python manage_another.py runserver 127.0.0.2:8000 ( для второго сайта )

Как между двумя этими сайтами на 1 БД сделать одинаковые сессии и куки? Это нужно для реализации общего кабинета на этих сайтах.
  • Вопрос задан
  • 281 просмотр
Решения вопроса 1
Assargin
@Assargin
Перед ответом смотрю наличие ✔ в ваших вопросах
Два сайта на разных доменах не могут увидеть куки друг друга (браузер просто не отправит чужие куки), и соответственно - сессию тоже не удастся разделить.

Если есть ресурсы сделать всё хорошо, то можно заморочиться с OAuth2. Этот протокол, грубо говоря, позволяет авторизоваться на одном из сайтов с помощью другого. Например, так во всём интернетике работает авторизация по соцсетям. Есть хорошая библиотека django-allauth, которая поддерживает авторизацию для очень многих провайдеров.

Если вам использование какой-нибудь соцсети не подходит (то есть вы сами хотите выступать как провайдер), то в вашем случае я вижу 2 варианта:
  • авторизовываться на одном из этих двух сайтов с помощью второго. То есть, один из сайтов будет провайдером OAuth2
  • то же самое, но сделать для этого отдельный проект (который и будет провайдером OAuth2), чисто для авторизации на ваших двух сайтах. Так работают, например, проекты TM: для авторизации на сайтах habrahabr.ru, geektimes.tu, toster.ru и т.д. используется id.tmtm.ru
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
кука зависит от домена, толку что она для другого будет одинаковой?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы