使用Yii2怎么实现会话跨域名共存

  介绍

这篇文章将为大家详细讲解有关使用Yii2怎么实现会话跨域名共存,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

无论是一二级域名,和不同域名下的跨域,无非要达到两点:

<李>

客户端访问同一个sessionId。

<李>

所有域名对应的服务器访问的会话的数据的位置必须一致。

1。访问共同的sessionId主要是通过把当前的sessionId写进饼干里面

饼干在不同域名下是不能访问的,我们需要在访问在后台设置用户在登录的时候,把需要共用的登录信息的域名,如果是在1、2级域名下,直接把饼干设置为所属主域名,例如:

setcookie (“session_id", session_id (), () + 3600 * 24 * 365 * 10,“/薄ⅰ?a.com");

也许你会问:如果是在不同的域名呢?采用P3P技术简单解决,实现原理,在访问网站x.com的时候,y.com程序触发y.com文件的写入sessionId值,sessionId值便可以获取,然后把seesion值存入数据库,取相同的sessionId值便可。这就要求y.com里面的程序文件必需能跨域访问,默认情况下,浏览器是不能跨域设置饼干的,加上P3P头后才行。在对php应文件加上:<代码>头(& # 39;P3P: CP=翱刺ˋDMa天神PSAo PSDo巴士UNI PUR INT民主党STA pre COM NAV OTC陈列DSP COR" & # 39;);

2。会话数据存储位置一致的实现方法

会话该数据默认情况下是存放在服务器的tmp文件下的,是以文件形式存在,而非存储在服务器的内存中,在这里我们得修改为所有域下都能访问的方式。网上介绍了数据库存储,文件形式存储,内存存储,如果用数据库存储会话数据,网站的访问量很大的话,会话的读写会频繁地对数据库进行操作,效率就会明显降低,可以考虑存在内存服务器来实现,下面的会话。rar里面介绍的是数据库存会话的实例。

在yii2下处理这中问题,根据网上搜到的教程终配置成功教程如下:

在前端的配置文件夹中主要。php中配置

host 美元;=,爆炸(& # 39;强生# 39;,,$ _SERVER [“HTTP_HOST"]);   if  (count($主机),祝辞,2),{   定义才能(& # 39;域# 39;,,主机美元[1],只& # 39;强生# 39;,只美元主机[2]);   },{else    定义才能(& # 39;域# 39;,,主机[0]美元,只& # 39;强生# 39;,只美元主机[1]);   }   定义(& # 39;DOMAIN_HOME& # 39;,, & # 39; www # 39;公司,只域);   定义(& # 39;DOMAIN_USER_CENTER& # 39;,, & # 39;男人# 39;公司,只域);   定义(& # 39;DOMAIN_API& # 39;,, & # 39; api # 39;公司,只域);   定义(& # 39;DOMAIN_EMAIL& # 39;,, & # 39;邮件# 39;公司,只域);   定义(& # 39;DOMAIN_LOGIN& # 39;,, & # 39;登录# 39;公司,只域);   定义(& # 39;DOMAIN_IMG& # 39;,, & # 39; img # 39;公司,只域),

然后配置用户和会话:

& # 39;用户# 39;,=祝辞,(   & # 39;才能enableAutoLogin& # 39;,=祝辞,真的,   & # 39;才能identityCookie& # 39;,=祝辞,[& # 39;名字# 39;,=祝辞,& # 39;_identity& # 39;,, & # 39; httponly # 39;,=祝辞,真的,,& # 39;域# 39;,=祝辞,& # 39;强生# 39;,只域),   ),   & # 39;会话# 39;,=祝辞,(   & # 39;才能cookieParams& # 39;,=祝辞,[& # 39;域# 39;,=祝辞,& # 39;强生# 39;,只域,,& # 39;一生# 39;,=祝辞,0],   & # 39;才能超时# 39;,=祝辞,3600年,   ],

这里在配置项的用户和会话里我把域名写死了例如:& # 39;域# 39;=祝辞& # 39;.baidu.com& # 39;,这样就不用判断了。

关于使用Yii2怎么实现会话跨域名共存就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

使用Yii2怎么实现会话跨域名共存