天天看點

cas 單點登入 php,PHPCAS-單點登入/單點登出

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

}

}

}