- 资源
官方文档:https://apereo.atlassian.net/wiki/spaces/CASC/pages/103252517/phpCAS
下载地址:https://apereo.atlassian.net/wiki/spaces/CASC/pages/103252517/phpCAS
- 无法获取Attributes
原理:CAS_VERSION_2_0改成CAS_VERSION_3_0
- 无法logout登出
原理:使用redis统一管理session,登录则sessionid与cas服务器传递的ticket绑定,退出则通过ticket销毁对应的session
- 以TP3为例,整合phpCAS
下载后文件放入../web/ThinkPHP/Library/Vendor/phpCAS目录
- 以TP3为例,整合redis统一管理session
在config中配置redis
'SESSION_AUTO_START' => true, // 是否自动开启Session 'SESSION_TYPE' => 'Redis', //session类型 'SESSION_PERSISTENT' => 1, //是否长连接(对于php来说0和1都一样) 'SESSION_CACHE_TIME' => 1, //连接超时时间(秒) 'SESSION_EXPIRE' => 3600, //session有效期(单位:秒) 0表示永久缓存 'SESSION_PREFIX' => '', //session前缀,不能加前缀,因为本项目中比较坑,用了tp3的session()又用了原生的$_SESSION 'SESSION_REDIS_HOST' => '127.0.0.1', //分布式Redis地址,默认第一个为主服务器,即db0 'SESSION_REDIS_AUTH' => password, 'SESSION_REDIS_PORT' => '6379', |
在../web/ThinkPHP/Library/Think/Session目录下增加Redis.class.php
<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> // +----------------------------------------------------------------------
namespace think\session\driver;
use SessionHandler; class Redis extends SessionHandler { /** @var \Redis */ protected $handler = null; protected $config = [ 'host' => '127.0.0.1', // redis主机 'port' => 6379, // redis端口 'password' => '', // 密码 'select' => 0, // 操作库 'expire' => 3600, // 有效期(秒) 'timeout' => 0, // 超时时间(秒) 'persistent' => true, // 是否长连接 'session_name' => '', // sessionkey前缀 ]; public function __construct() { $options = array ( 'host' => C('SESSION_REDIS_HOST') ? C('SESSION_REDIS_HOST') : '127.0.0.1', 'port' => C('SESSION |