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);//此處做系統登入操作,根據自己的項目适當調整
}
}
}