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);//此处做系统登录操作,根据自己的项目适当调整
    }
  }
}

posted @ 2020-07-22 16:09  Neige  阅读(831)  评论(0编辑  收藏  举报