这是我上一个问题的延续
现在我在 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. 当用户单击“注销”时,请求的页面是 cauth.com/slo。
然后从此用户将被带到主站点(a.com 或 b.com)的注销。
用户将被重定向到主站点的索引页面。
我想知道有什么方法可以在内部处理 saml 注销,从而减少 http 重定向的数量,记住我必须清除两个站点上的会话变量?