phpmyadmin sso不会在注销时删除现有会话
我正在尝试在我的自定义应用程序中使用PHPMyAdmin SSO,该应用程序是在Yii框架中创建的。按照phpMyAdmin指南,我在config.inc.php中做了必要的更改phpmyadmin sso不会在注销时删除现有会话,php,session,yii,phpmyadmin,single-sign-on,Php,Session,Yii,Phpmyadmin,Single Sign On,我正在尝试在我的自定义应用程序中使用PHPMyAdmin SSO,该应用程序是在Yii框架中创建的。按照phpMyAdmin指南,我在config.inc.php中做了必要的更改 $cfg['Servers'][$i]['auth_type'] = 'signon'; $cfg['Servers'][$i]['SignonSession'] = 'MYSESSID'; $cfg['Servers'][$i]['SignonURL'] = 'http://myapp.com/site/login'
$cfg['Servers'][$i]['auth_type'] = 'signon';
$cfg['Servers'][$i]['SignonSession'] = 'MYSESSID';
$cfg['Servers'][$i]['SignonURL'] = 'http://myapp.com/site/login';
$cfg['Servers'][$i]['LogoutURL'] = 'http://myapp.com/site/logout';
PHPMyAdmin链接到我的应用程序,当有人登录时,我使用用户名和密码值设置PMA_single_signon_用户和PMA_single_signon_密码。在注销操作中,我销毁会话Yii::app->session->destroy等价于会话_unset;会话(u)销毁
当用户成功登录到应用程序时,他可以单击phpmyadmin链接,他将成功重定向到phpmyadmin界面
当用户登录应用程序时,不会关闭浏览器并再次登录,即使用户已成功登录,我的phpmyadmin链接仍将重定向到登录签名URL
在phpmyadmin/libraries/plugins/auth/AuthenticationSignon.class.php中使用firebug和一些var_转储,我注意到在注销后,phpmyadmin仍然在path/phpmyadmin/下使用一个MYSESSID,它具有上一个会话的值
例如,我登录到myapp.com/site/login,得到
MYSESSID="value1" path=/
我成功地点击了myapp.com/phpmyadmin/链接。现在我在br中有两个MYSESSID
MYSESSID="value1" path=/
MYSESSID="value1" path=/phpmyadmin/
我注销时未关闭浏览器窗口并再次登录,在MYSESSID中获得一个新值,如:
MYSESSID="value2" path=/
我单击myapp.com/phpmyadmin/link,在重定向到SingoUrl之前退出,并查看以下会话:
MYSESSID="value2" path=/
MYSESSID="value1" path=/phpmyadmin/
从AuthenticationSignon.class.php我了解到,由于phpmyadmin在MYSESSID=value1内搜索,因此无法找到所需的PMA\u single\u signon\u用户和PMA\u single\u signon\u密码
因为我把它们放在MYSESSID=value2下
我所理解的底线是,当我在注销期间销毁会话时,在path=/phpmyadmin/下定义的会话不会被删除
有人知道如何正确注销或删除path=/phpmyadmin/下的会话吗
当我关闭浏览器窗口时,路径/和/phpmyadmin/的MysESSID=value1被完全删除,因此重新登录工作正常
注意:我只使用myapp.com,根本不使用www.myapp.com解决方案是显式设置会话cookie,其中包含过去的时间,因此已经过期
setcookie("WPCPSESSID", $_COOKIE["MYSESSID"],time()-100, '/phpmyadmin/');
这样,phpmyadmin会话将在不关闭窗口的情况下过期
会议似乎没有结束;会话(u)销毁;;仅删除/path下的会话cookie,而不是子页面中的会话cookie,例如/phpmyadmin/我还无法发布答案,因此我将其写在注释中。似乎删除/phpmyadmin/path下的会话的方法是执行一个setcookieWPCPSESSID,$\u COOKIE[MYSESSID],time-100,“/phpmyadmin/”;在注销操作中,实际创建一个具有过期时间的新cookie。这样,会话将在不关闭窗口的情况下过期。会议未结束;会话(u)销毁;;仅删除/path下的cookies。