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 09 PHP
php中文字母数字验证码实现代码
Apr 25 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Jan 27 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
Apr 23 PHP
php 地区分类排序算法
Jul 01 PHP
利用PHP实现短域名互转
Jul 05 PHP
smarty模板中拼接字符串的方法
Feb 14 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
Oct 18 PHP
PHP7内核之Reference详解
Mar 14 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 PHP
浅析PHP中的 inet_pton 网络函数
Dec 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
php获取某个目录大小的代码
2008/09/10 PHP
php生成随机密码的几种方法
2011/01/17 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
Javascript的闭包
2009/12/31 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
详解Python下ftp上传文件linux服务器
2018/06/21 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
序列化Python对象的方法
2020/08/01 Python
Python创建临时文件和文件夹
2020/08/05 Python
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
大学生工作求职信
2014/06/23 职场文书
科学发展观演讲稿
2014/09/11 职场文书
西双版纳导游词
2015/02/03 职场文书
2015年入党决心书
2015/02/05 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书