基于CAS的单点登录实战(2)-- 搭建cas的php客户端
在这之前已经搭好了CAS服务端 基于CAS的单点登录实战(1)-- 搭建cas服务器
PHP-Client#
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();
}
部署之后可以成功获取用户信息,同步登录登出。然而有个严重BUG,退出登录之后需要登录2次才能成功。。。目前还未解决
client.php 里封装了很多有用的方法,可以根据业务场景调用。
假如接入其他系统需要了解原系统的认证方式,然后视情况进行修改甚至重做。
遇到的问题:
- 设置
phpCAS::handleLogoutRequests();后不能同步退出,是因为cas服务端无法连接测试环境的域名 phpCAS::logout(['service'=>'http://localhost/cas-client/index.php']);设置退出登录后返回的页面,但是我这里没成功过- php客户端退出后需要登录2次(提交空表单或者Ctrl+F5刷新也可)才能登录。起初怀疑是缓存,然后在java服务端设置http头no-cache,结果我的2个php客户端其一可以正常登录了,另一个还是需要登录两次。。崩溃中
基于CAS的单点登录实战(2)-- 搭建cas的php客户端的更多相关文章
- 基于CAS的单点登录实战(1)-- 搭建cas服务器
公司有几个系统想做SSO,然后开始研究cas.系统是Centos7 搭建CAS服务器 cas的版本比较多,先在网上搜了一下各种教程配置经验.本来想搭建最新的CAS版本,然而为了快速部署,选择了网上教程 ...
- [精华][推荐]CAS SSO 单点登录框架学习 环境搭建
1.了解单点登录 SSO 主要特点是: SSO 应用之间使用 Web 协议(如 HTTPS) ,并且只有一个登录入口. SSO 的体系中有下面三种角色: 1) User(多个) 2) Web 应用( ...
- 手把手教你学会 基于JWT的单点登录
最近我们组要给负责的一个管理系统 A 集成另外一个系统 B,为了让用户使用更加便捷,避免多个系统重复登录,希望能够达到这样的效果--用户只需登录一次就能够在这两个系统中进行操作.很明显这就是单点登 ...
- 基于SAML的单点登录介绍
http://blog.csdn.net/csethcrm/article/details/20694993 一.背景知识: SAML即安全断言标记语言,英文全称是Security Assertion ...
- CAS实现单点登录SSO执行原理及部署
一.不落俗套的开始 1.背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS框架:CAS(Centra ...
- Spring Security 集成CAS实现单点登录
参考:http://elim.iteye.com/blog/2270446 众所周知,Cas是对单点登录的一种实现.本文假设读者已经了解了Cas的原理及其使用,这些内容在本文将不会讨论.Cas有Ser ...
- CAS单点登录实践(spring cas client配置)
前言: 最近的项目需要将多个站点统一登录,查阅了资料Jasig cas(Central Authentication Service)(官方站点:http://www.jasig.org/cas)使用 ...
- cas实现单点登录原理
1.基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从 ...
- Cas(07)——建立使用Cas进行单点登录的应用
建立使用Cas进行单点登录的应用 目录 1.1加入cas-client-core-xxx.jar到classpath 1.2配置Filter 1.2.1AuthenticationFilter 1.2 ...
随机推荐
- oracle下载地址
12c 下载地址 http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html
- html5测试总结
1.因为html5不兼容IE78,所以在PC上使用并非十分光.pc上IE还是占主流 2.html5主要用在移动终端 3.html5短期内因为自身的缺陷,用户体验无法达到原生app的体验.如:html5 ...
- 修改Ubuntu默认apt下载源
修改Ubuntu默认apt下载源 默认下载源很慢,改成阿里的下载速度超快 sudo vim /etc/apt/sources.list 将文件内容替换成 deb http://mirrors.aliy ...
- vue-cli中的ESlint配置文件eslintrc.js详解
本文讲解vue-cli脚手架根目录文件.eslintrc.js eslint简介 eslint是用来管理和检测js代码风格的工具,可以和编辑器搭配使用,如vscode的eslint插件 当有不符合配置 ...
- Spring Cloud Eureka 4 (高可用服务注册中心)
在微服务这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须考虑对各个组件进行高可用部署,对于服务注册中心也是一样. Eureka Server 的高可用实际上就是讲自己作为服务向 ...
- easyui之datagrid之formatter(后台传递常量自动转换值)
1,datagrid之formatter formatter格式化函数有三个参数: value:字段值(一般为后台传递给前台的值): row:当前行数据: index:当前行索引. return值是显 ...
- 设置VMware Player中的虚拟机和宿主机共享文件
设置VMware Player中的虚拟机和宿主机共享文件 试验环境: 虚拟机软件:VMware Player 6.0.3 宿主机os:windows7 虚拟机os:centos6.6(32位) 完 ...
- C# XML 操作
1 xml文件格式 <?xml version="1.0" encoding="utf-8"?> <userInfo> <user ...
- 数论Keynote
[同余] 1.整数a,b对模m同余的充分与必要条件是m|(a-b),即a=b+mt,t是整数. 2.性质丁.若a1=b1(mod m),a2=b2(mod m),则(a1+a2)=(b1+b2)(mo ...
- mfs教程(一)
对于mfs文件系统也用了半年了,确实不错,最近又翻译了作者的三篇文章,再此一同发上,希望对大家有所帮助.不足之处还请指出,以便完善,谢谢! 感谢网友nonamexz做了精美的pdf文档 MFS文件系统 ...