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实现MySQL更新记录的代码
Jun 07 PHP
PHP 地址栏信息的获取代码
Jan 07 PHP
关于IIS php调用com组件的权限问题
Jan 11 PHP
PHP编码规范的深入探讨
Jun 06 PHP
PHP页面中文乱码分析
Oct 29 PHP
Laravel5中contracts详解
Mar 02 PHP
PHP中应该避免使用同名变量(拆分临时变量)
Apr 03 PHP
PHP文件上传操作实例详解
Sep 27 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 PHP
Yii 2中的load()和save()示例详解
Aug 03 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 12 PHP
thinkphp5使html5实现动态跳转的例子
Oct 16 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
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
jQuery 创建Dom元素
2010/05/07 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
Vue Spa切换页面时更改标题的实例代码
2017/07/15 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
详解Python中expandtabs()方法的使用
2015/05/18 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
Numpy之文件存取的示例代码
2018/08/03 Python
Python OpenCV实现视频分帧
2019/06/01 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
python中树与树的表示知识点总结
2019/09/14 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
Python如何测试stdout输出
2020/08/10 Python
Python 如何查找特定类型文件
2020/08/17 Python
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
煤矿班组长岗位职责
2013/12/29 职场文书
大学新生军训感言
2014/02/25 职场文书
医生个人年终总结
2015/02/28 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
道歉信范文
2015/05/12 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
小学思品教学反思
2016/02/20 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
opencv读取视频并保存图像的方法
2021/06/04 Python
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers