最近在做thinkphp5.1对接cas5.3的项目,从网上查了好多资料,发现tp5.1对接cas5.3的资料特别少,经过摸索,现已经测试对接成功,能够实现认证,将方法分享给大家,如有更优方案,请留言沟通交流,大家共同进步。
没有安装composer的请自行安装
composer require apereo/phpcas
1、修改client.php,支持http协议
文件路径:\tp项目根目录\vendor\apereo\phpcas\source\CAS\Client.php

2、在config/app.php中增加以下配置
//cas配置信息'server_hostname' => 'www.sso.com', //服务器地址(不能带http://)'server_port' => 8443, //cas server端口'server_uri' => '/cas', //cas路径'service_base_url' => 'http://www.xxx.com', //认证成功后跳转地址,修改为自己的业务系统地址
注意:端口号不能带引号,否则登录页将出现空白
<?php//公共控制器namespace app\index\controller;use phpCAS;use think\Controller;class Base extends Controller{protected function initialize(){parent::initialize();//cas配置$server_hostname = Config::get('app.server_hostname'); //服务器地址$server_port = Config::get('app.server_port'); //cas server端口$server_uri = Config::get('app.server_uri');$service_base_url = Config::get('app.service_base_url'); //认证成功后跳转地址$phpCAS = new phpCAS();$phpCAS::setLogger();$phpCAS::client(CAS_VERSION_2_0, $server_hostname, $server_port, $server_uri,$service_base_url);$phpCAS::setNoCasServerValidation();$phpCAS::handleLogoutRequests();$auth = $phpCAS::forceAuthentication();if ($auth) {# 验证通过,或者说已经登陆系统,可进行已经登陆之后的逻辑处理...} else {//还未登陆,跳转到CAS进行登陆$cas_url = 'http://'.Config::get('app.server_hostname').':'.Config::get('app.server_port').Config::get('app.server_uri');$this->redirect(url($cas_url));}}}
# 登出方法一:登出成功后跳转的地址//phpCAS::setServerLoginUrl("https://192.168.1.120:80/cas/logout?embed=true&service=http://localhost/phpCasClient/user.php?a=login");//phpCAS::logout();# 登出方法二:退出登录后返回地址//$param = array("service" => "http://cas.wzh.com");//phpCAS::logout($param);/*
* 退出
*/public function logout(){Session::clear();$logout_url = 'http://'.Config::get('app.server_hostname').':'.Config::get('app.server_port').Config::get('app.server_uri').'/logout';$this->redirect($logout_url);}
# 获得登陆CAS用户的名称$phpCAS = new phpCAS();$user_name = $phpCAS::getUser();echo $user_name;# 还可打印保存的phpCAS session信息print_r($_SESSION);# 还可获取有关已验证用户的属性,例如:$uid = phpCAS::getAttribute('id');# 关于此部分用户属性数据设置说明:https://my.oschina.net/liucao/blog/479755$attr = $phpCAS::getAttributes();print_r($attr);
如果觉得博客文章对您有帮助,异或土豪有钱任性,可以通过以下扫码向我捐助。也可以动动手指,帮我分享和传播。您的肯定,是我不懈努力的动力!感谢各位亲~