yii二级域名共享登陆状态

2017-06-02 23:16:25  对羊弹琴

本文配置适用于项目部署在同一台服务器上的情况,如果部署在多台服务器需要先实现session共享,例如通过redis,memcached等实现。

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

  1. 客户端访问同一个sessionId,
  2. 所有域名对应的服务器访问的session的数据的位置必须一致。

一般情况下,sessionid写在cookie里,所以也需要cookie共享。

  • 顶级域名只能设置domain为顶级域名,不能设置为二级域名或者三级域名等等,否则cookie无法生成
  • 二级域名可以设置domain为二级域名或者顶级域名

设置登陆cookie信息共享

'user' => [
...
'identityCookie' => [
'name' => '_identity',
'httpOnly' => true,
'domain' => 'domain.com'
]
],

设置session共享

'session' => [
'cookieParams' => ['domain' => 'domain.com'],
],

这样在任意子域名登陆,其余子域名都能获取登陆状态,自动登陆。



评论(0) 最后更新于 2017-06-02 23:16:25