Yii2实现多域名跨域同步登录退出


Posted in PHP onFebruary 04, 2017

在平台开发过程中,项目分为前台(frontend)www.xxx.com和后台(backend) yun.xxx.com两部分,绑定两个域名, 我们知道在没有绑定域名的时候前后台可以同步登录和退出,但是绑定域名后就失效了,原因是session的作用域不同了。 两个域名的session作用域都只限制在了自己的域名上,我们的解决办法是将不同二级域名的作用域都改成顶级域名xxx.com。

在common/config/main.PHP里面增加如下代码:

//跨域session域名配置,获取当前主机名 
$host_array = explode('.', $_SERVER["HTTP_HOST"]); 
//针对com域名,获取顶级域名 
if (count($host_array) == 3) { 
  define('DOMAIN', $host_array[1] . '.' . $host_array[2]); 
} 
//针对com.cn域名 
elseif (count($host_array) == 4) { 
  define('DOMAIN', $host_array[1] . '.' . $host_array[2]. '.' . $host_array[3]); 
} 
else{ 
  //echo "本系统不支持本地访问,请配置域名";exit; 
} 
define('DOMAIN_HOME', 'www.' . DOMAIN); 
define('DOMAIN_YUN', 'yun.' . DOMAIN); 
define('DOMAIN_API', 'api.' . DOMAIN); 
define('DOMAIN_EMAIL', 'mail.' . DOMAIN); 
define('DOMAIN_IMG', 'img.' . DOMAIN);

修改components部分,改变session作用域

'user' => [ 
      'identityClass' => 'common\models\User', 
      'enableAutoLogin' => true, 
      'identityCookie' => ['name' => '_identity', 'httpOnly' => true, 'domain' => '.' . DOMAIN], 
    ], 
    'session' => [ 
      'cookieParams' => ['domain' => '.' . DOMAIN, 'lifetime' => 0], 
      'timeout' => 3600, 
    ],

通过上述配置后,多个二级域名间就可以实现同步登录和退出了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
用PHP读取RSS feed的代码
Aug 01 PHP
c#中的实现php中的preg_replace
Dec 21 PHP
通用PHP动态生成静态HTML网页的代码
Mar 04 PHP
PHP中MVC模式的模板引擎开发经验分享
Mar 23 PHP
使用php记录用户通过搜索引擎进网站的关键词
Feb 13 PHP
PHP临时文件的安全性分析
Jul 04 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 PHP
php使用curl详细解析及问题汇总
Aug 11 PHP
php中通过eval实现字符串格式的计算公式
Mar 18 PHP
laravel框架关于搜索功能的实现
Mar 15 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
Apr 10 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 PHP
PHP使用mysqli操作MySQL数据库的简单方法
Feb 04 #PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
Feb 04 #PHP
用PHP的socket实现客户端到服务端的通信实例详解
Feb 04 #PHP
关于PHP内置的字符串处理函数详解
Feb 04 #PHP
详谈PHP面向对象中常用的关键字和魔术方法
Feb 04 #PHP
浅谈PHP中的错误处理和异常处理
Feb 04 #PHP
详谈PHP中的密码安全性Password Hashing
Feb 04 #PHP
You might like
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
php递归创建和删除文件夹的代码小结
2012/04/13 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
Express的路由详解
2015/12/10 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
Python变量和数据类型详解
2017/02/15 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
Selenium定位元素操作示例
2018/08/10 Python
Python3.5文件修改操作实例分析
2019/05/01 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
python下载的库包存放路径
2020/07/27 Python
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
先进员工事迹材料
2014/12/20 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python
mysql查询结果实现多列拼接查询
2022/04/03 MySQL