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 中英文混合排版中处理字符串常用的函数
Apr 12 PHP
PHP中用header图片地址 简单隐藏图片源地址
Apr 09 PHP
php 方便水印和缩略图的图形类
May 21 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
May 07 PHP
关于PHP实现异步操作的研究
Feb 03 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
memcache一致性hash的php实现方法
Mar 05 PHP
php中简单的对称加密算法实现
Jan 05 PHP
Yii2.0实现的批量更新及批量插入功能示例
Jan 29 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 PHP
phpinfo的知识点总结
Oct 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
支持oicq头像的留言簿(一)
2006/10/09 PHP
实用函数3
2007/11/08 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
webapp字号大小跟随系统字号大小缩放的示例代码
2018/12/26 HTML / CSS
家具厂厂长岗位职责
2014/01/01 职场文书
煤矿机修工岗位职责
2014/02/07 职场文书
《石榴》教学反思
2014/03/02 职场文书
工会主席事迹材料
2014/06/03 职场文书
污水处理保证书
2015/05/09 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
js不常见操作运算符总结
2021/11/20 Javascript