У меня есть три веб-сайта Main, a, b. Если вы вошли в систему через веб-сайт «Главная», я включу сеанс для веб-сайтов «a», «b». Так что это нормально работает. Когда пользователь выходил из основного веб-сайта, мне нужно выходить из других двух веб-сайтов «a», «b». Есть два разных URL выхода для двух других веб-сайтов, поэтому я вызываю URL-адрес выхода этого сайта в функцию выхода из главного сайта, используя drupal_http_request
Пример КОД:
// this is the function where main website session are destroyed function mymodule_logout(){ session_destory(); $request = drupal_http_request("http://B-website.com:8083/VideoBook/signout.action"); print_r($request); if($request) { drupal_goto($logout_url,$options); } }
ВЫВОД :
stdClass Object ( [code] => 0 [error] => Error opening socket ssl://mywebsite.com:8443 [redirect_code] => 302 [redirect_url] => https://mywebsite.com:8443/cas/login?service=http%3A%2F%2Fmywebsite2.com%3A8083%2FVideoBook%2Flogin.action )
B-website-logout-url: http://B-website.com:8083/VideoBook/signout.action
Когда я запустил этот URL-адрес выхода на вкладке браузера, тогда весь сеанс и файлы cookie будут уничтожены, но когда я запустил этот URL-адрес выхода, используя drupal_http_request (' http://B-website.com:8083/VideoBook/signout.action ) ; , то это приведет к ошибке «Ошибка открытия Socket ssl: //». Заранее спасибо.
В принципе, для signout.action требуются данные сеанса, то есть в настоящее время регистрируются в данных пользователя, но мы не можем отправлять данные сеанса через завиток. поэтому его перенаправление на login.action. Таким образом, это приводит к ошибке кода 302.