php-Client是官方支持的,去官网下个最新版就好了。phpCAS
接入很简单,解压放到web目录下:
+. docs/examples/
目录下都是示例文件,这里取example_simple.php
为例。
+. source/cas.php
核心文件
注:可能因为版本的不同目录结构会不一样。
下面是代码示例
<?php
//
// phpCAS simple client
//
// import phpCAS lib
// 引入文件
include_once('CAS.php');
// 开启log,注意目录读写权限
phpCAS::setDebug('tmp/cas.log');
// initialize phpCAS
// 四个参数分别是
// cas server 版本
// cas server 域名
// cas server 端口
// cas server 路径
phpCAS::client(CAS_VERSION_2_0, 'localhost', 8088, '/cas-server');
// 不验证SSL证书
phpCAS::setNoCasServerValidation();
// force CAS authentication
// 这个是强制认证模式,查看 client.php 可以找到集中不同的方式
// forceAuthentication
// checkAuthentication
// renewAuthentication
// 根据自己需要调用即可
phpCAS::forceAuthentication();
// 处理登出请求。cas服务端会发送请求通知客户端。如果没有同步登出,可能是服务端跟客户端无法通信(比如我的客户端是localhost, 服务端在云上)
phpCAS::handleLogoutRequests();
// at this step, the user has been authenticated by the CAS server
// and the user's login name can be read with phpCAS::getUser().
// 获取用户名
$username = phpCAS::getUser();
// 获取完整用户信息(在上一篇文章中介绍了如何扩展用户信息)
$userinfo = phpCAS::getAttributes();
// logout if desired
if (isset($_REQUEST['logout'])) {
// 这里貌似可以指定退出后返回的页面,但是我没有成功
// phpCAS::logout(['service'=>'http://localhost/cas-client/index.php']);
phpCAS::logout();
}
client.php 里封装了很多有用的方法,可以根据业务场景调用。
假如接入其他系统需要了解原系统的认证方式,然后视情况进行修改甚至重做。
遇到问题:
phpCAS::client(CAS_VERSION_2_0, 'localhost', 8088, '/cas-server');
域名:不需要加http://协议 写根域名 例如:10.10.66.3
整合现有的应用系统,可以根据是否有登录信息来加入自己的应用的用户信息来达到整合的目的