Intereting Posts
Вызов функции PHP из HTML-формы в том же файле? Сплит большого файла каждый раз </ byebye> происходит Проблема в создании нового контроллера в Zend Framework 2 (ZF2) mod_rewrite перенаправить корень uri в index.php Оператор case-скрипта PHP с условным переключателем Извлечь объект JSON внутри объекта JSON через php Mysql Выбирает в вложенных циклах Предотвращение фиксации сеанса путем обеспечения единственного источника создания сеанса должно быть безопасным случайным генератором Как удалить все экземпляры дублированных значений из массива Symfony2 – получить текущий маршрут основного запроса в частичном / подзапросе Список конкретных файлов PHP в каталоге laravel 5.2 Как получить параметр маршрута в клинке? Эффективное получение количества строк, возвращаемых SELECT-запросом, с предложением WHERE с использованием PDO Ошибка PHP: «Не удается передать параметр 2 по ссылке» Uncaught ReferenceError: checkLoginState не определяется с помощью API facebook

Поделитесь СЕССИЕЙ на нескольких серверах с разными доменами

У меня небольшая проблема. Я разрабатываю приложение на PHP, которое делится на модули. Каждый модуль полностью независим, находится на отдельном сервере и имеет собственный домен. например:

www.moduloprincipal.com.br, www.modulo2.com.br, www.modulo3.com.br и т. д.

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

В настоящее время каждое приложение находится на другом сервере, но при необходимости они находятся на одном сервере, это не будет проблемой.

ВАЖНЫЙ:

  1. Прочитайте несколько потоков, но не нашли решения действительно безопасным. Будет интересно использовать OAuth?

  2. В настоящее время приложение использует $ _SESSION для аутентификации пользователей, но вы можете использовать $ _COOKIE плавно.

  3. Я использую CodeIgniter

Перевод с помощью Google Translate. Извини …

Два варианта с головы, которые вы можете исследовать:

  • Установите для всех серверов один и тот же путь для сохранения данных сеанса, см. Директиву session.save_path . Это местоположение может быть общим ресурсом NFS или местоположением NAS, доступным для всех ваших серверов.

  • Другой вариант – реализовать обработчик сеанса базы данных , поэтому данные сеанса могут быть разделены между всеми вашими серверами, обращающимися к одному серверу базы данных. Поэтому ознакомьтесь с документами PHP для пользовательских обработчиков сеансов .