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中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
May 05 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
PHP图片自动裁切应付不同尺寸的显示
Oct 16 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
WordPress中创建用户角色的相关PHP函数使用详解
Dec 25 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
PHP实现限制IP访问的方法
Apr 20 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
yii2多图上传组件的使用教程
May 10 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
如何开发一个虚拟域名系统
2006/10/09 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
JavaScript中的面向对象介绍
2012/06/30 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
pandas数值计算与排序方法
2018/04/12 Python
python 中字典嵌套列表的方法
2018/07/03 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
Python 获取windows桌面路径的5种方法小结
2019/07/15 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
Python3开发环境搭建详细教程
2020/06/18 Python
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
建筑人员岗位职责
2013/12/25 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL