PHPCAS-单点登录/单点登出
参考:https://blog.csdn.net/lishuangzhe7047/article/details/38587151(万分感谢)
PS:第一次调试PHP的单点登录功能,登录能成功,登出一直不行。后来找了好久资料终于可以了,记录一下。这个PHP项目用的是Think-CMF,CAS-SERVER以及CAS-CLIENT均使用本机IP+端口的形式访问,下面是登录功能的参考代码。
public function login() {
include_once VENDOR_PATH . '/phpcas/CAS.php';
\phpCAS::setDebug(RUNTIME_PATH.'/log/cas.log');//cas日志开启,注意路径
\phpCAS::client(CAS_VERSION_2_0,'CAS-SERVER的IP或者域名',CAS-SERVER端口,'/CAS-SERVER路径');
//no SSL validation for the CAS server 不使用SSL服务校验
\phpCAS::setNoCasServerValidation();
//这里会检测服务器端的退出的通知,就能实现php和其他语言平台间同步登出了
//\phpCAS::handleLogoutRequests(true,['CAS服务器IP']);
//\phpCAS::handleLogoutRequests(false);
\phpCAS::handleLogoutRequests();
\phpCAS::forceAuthentication();//此处必须在handleLogoutRequests后面,我之前写在前面一直不行
// 调用此方法以检查用户是否已通过身份验证(使用网关功能)。用户通过身份验证时为TRUE;否则为FALSE。
if(\phpCAS::checkAuthentication()){
$username = \phpCAS::getUser();
if (!empty($username)) {
$this->doLogin($username);//此处做系统登录操作,根据自己的项目适当调整
}
}
}