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 错误处理经验分享
Oct 11 PHP
php实现rc4加密算法代码
Apr 25 PHP
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
php中session退出登陆问题
Feb 27 PHP
Linux中为php配置伪静态
Dec 17 PHP
基于PHP技术开发客服工单系统
Jan 06 PHP
PHP统计目录中文件以及目录中目录大小的方法
Jan 09 PHP
php阳历转农历优化版
Aug 08 PHP
Yii2框架实现注册和登录教程
Sep 30 PHP
php 魔术常量详解及实例代码
Dec 04 PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 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
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
php 变量引用与变量销毁机制详细介绍
2016/12/05 PHP
php常用字符函数实例小结
2016/12/29 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
Python读取mp3中ID3信息的方法
2015/03/05 Python
python去掉行尾的换行符方法
2017/01/04 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
python支持多线程的爬虫实例
2019/12/21 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
django项目中新增app的2种实现方法
2020/04/01 Python
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
中年人生感言
2014/02/04 职场文书
总经理助理职责
2014/02/04 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
公关活动策划方案
2014/05/25 职场文书
优秀求职信
2014/05/29 职场文书
群众路线剖析材料
2014/09/30 职场文书
2014年城管工作总结
2014/11/20 职场文书
2015年公务员工作总结
2015/04/24 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书
2019思想汇报范文
2019/05/21 职场文书