Это продолжается с моим предыдущим вопросом
Центральный вход с SAML и создание сайта для работы в качестве поставщика удостоверений
Теперь у меня есть сеансы на cauth.com, а также на a.com (или b.com). Какой может быть лучший способ выйти из сеансов на обоих сайтах при нажатии кнопки «Выход».
Это код, который я прописал для выхода из системы cauth.com.
public function actionSlo(){ $metadata = \SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler(); $idpEntityId = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted'); $idp = \SimpleSAML_IdP::getById('saml2:' . $idpEntityId); \sspmod_saml_IdP_SAML2::receiveLogoutMessage($idp); assert('FALSE'); //destroy session session_destroy(); //redirect to the spentity $spId = $_GET['spentityid']; header("location:".$spId); }
Мне кажется, что выход из системы займет 3 переадресации HTTP
1. Когда пользователь нажимает кнопку «logout», запрашиваемая страница – cauth.com/slo.
Затем от этого пользователя будет отправлен на выход из основного сайта (a.com или b.com).
Пользователь будет перенаправлен на индексную страницу основного сайта.
Я хочу знать, есть ли способ, с помощью которого я могу обработать выход saml, внутренне уменьшающий количество переадресаций http, имея в виду, что мне нужно очистить переменные сеанса на обоих сайтах?
Попробуйте очистить сеанс пользователя в
cauth.com( (cauth.com/logout))
необходимо очистить сеанс пользователя, чтобы начать сеанс пользователя и уничтожить текущий сеанс пользователя
session_start(); session_unset(); session_destroy();