Извините за странную, рекурсивную формулировку названия, но я не мог придумать лучшего названия.
Как я упоминал ранее, у меня есть 2 веб-сайта A и B, и я интегрирую B в A, так что B по-прежнему доступен как автономный сайт, но также как часть A (в iframe). Оба сайта имеют свои экраны входа в систему. Мне нужно было обойти экран входа для сайта B, когда к нему обращались из A. Я сделал это, как показано ниже:
Сначала A проверяет, совпадает ли местоположение B с (то есть они работают на сервере), если это так, то информация для входа в систему сохраняется в переменных сеанса и проверяется на b.
Если местоположение B - другой сервер, то информация для входа отправляется через URL-адрес (см. Здесь: Мне нужно объединить два сайта, каков наилучший способ передачи информации для входа? ) Возможно, это небезопасно, учитывая, что URL можно увидеть в исходном коде, но я не мог придумать лучшего решения.
Когда вызывается веб-сайт B, вызывается index.php, а index.php проверяет, вошел ли пользователь в систему или нет (независимо от того, установлена переменная сеанса или нет), если пользователь не авторизован, index.php вызывает check .php, который проверяет данные аутентификации, отправленные сайтом a. Если данные в порядке, check.php аутентифицирует пользователя, и как только скрипт завершается, мы возвращаемся в index.php.
Теперь единственная проблема заключается в том, что если пользователь ADMIN заходит на веб-сайт a, то нажимает на ссылку для веб-сайта b, веб-сайт b отображается, и теперь он зарегистрирован как администратор на обоих сайтах. После выполнения некоторых действий ADMIN выходит из САЙТА A БЕЗ выхода из сайта b. Затем его босс, СУПЕР АДМИН, подходит, пихает АДМИНА со своего места и входит на сайт а. SUPER ADMIN затем нажимает на ссылку на сайт b, только чтобы обнаружить, что он вошел на сайт b как ADMIN. В этот момент он поднимает трубку, звонит мне и начинает выкрикивать ругательства на меня.
Итак, это не самая серьезная проблема, но было бы неплохо решить. Одно из решений, которое я имею в виду, - это добавить поле идентификатора b веб-сайта каждому пользователю сайта a и также отправить его в URL. Таким образом, когда вызывается check.php, он сохраняет поле id в переменной SESSION. Таким образом, когда index.php снова вызывается веб-сайтом a, он проверяет, установлена ли переменная Session, и если да, то сравнивает переменную set с новой переменной, отправляемой $ _GET. Если URL-адрес другой, он уничтожает сеанс и включает в себя check.php, я, вероятно, смогу реализовать это решение, но это займет немного времени, и я не уверен, хорошая ли это идея или нет, поэтому я хотел спросить, есть ли другой лучший способ, или советы для вышеупомянутого решения.
Спасибо за ваше время, хорошего дня!