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 获取客户端的真实ip
Nov 30 PHP
PHP中实现汉字转区位码应用源码实例解析
Jun 14 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
ThinkPHP模板Switch标签用法示例
Jun 30 PHP
PHP中的常见魔术方法功能作用及用法实例
Jul 01 PHP
php通过淘宝API查询IP地址归属等信息
Dec 25 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
Dec 25 PHP
php基于SQLite实现的分页功能示例
Jun 21 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 PHP
php使用socket调用http和smtp协议实例小结
Jul 26 PHP
Yii框架视图、视图布局、视图数据块操作示例
Oct 14 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
使用数据库保存session的方法
2006/10/09 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
python re模块的高级用法详解
2018/06/06 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
Django 实现图片上传和显示过程详解
2019/07/18 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
党校培训自我鉴定
2014/02/01 职场文书
房地产推广策划方案
2014/05/19 职场文书
代理人委托书
2014/08/01 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
MySQL分区表实现按月份归类
2021/11/01 MySQL
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js