我们使用 CAS 和 phpCAS 来处理我们的 PHP 脚本和 CAS 之间的操作。对于我们更高级的 Web 应用程序之一,CAS 仅用于身份验证,而不用于会话管理。在我们的注销脚本中,我们希望终止 CAS 会话等。但是,我无法确定一种远程调用 phpCAS 以终止 CAS 会话的方法,而不会在浏览器中发生某种操作。
来自 phpCAS 文档:
phpCAS::logout()
注销后,CAS 服务器打印注销页面。phpCAS::logoutWithRedirectService($service)
注销后,CAS 服务器将浏览器重定向到给定的 URL。
选项 #1 重定向到 CAS 注销页面。选项 #2 重定向到给定的 URL。我们需要一个两者都不做的选项。
考虑这个代码片段:
//Kill the CAS session
phpCAS::logout();
//Kill the cookie
setcookie("our-cookie");
//Unset hash in the database
$result = pg_query($connection, "UPDATE table SET field = null WHERE field = '".pg_escape_string($var)."'");
phpCAS 将浏览器重定向到某处的默认操作会破坏此功能。这个脚本不应该重定向浏览器,将被异步调用,并且返回将一个变量发送回一个修改当前视图的 ExtJS 回调。
有谁知道我如何强制 CAS 服务器结束会话,无论是否使用 phpCAS,以允许此功能发生?