本文配置适用于项目部署在同一台服务器上的情况,如果部署在多台服务器需要先实现session共享,例如通过redis,memcached等实现。
无论是一二级域名,和不同域名下的跨域,无非要达到两点:
- 客户端访问同一个sessionId,
- 所有域名对应的服务器访问的session的数据的位置必须一致。
一般情况下,sessionid写在cookie里,所以也需要cookie共享。
- 顶级域名只能设置domain为顶级域名,不能设置为二级域名或者三级域名等等,否则cookie无法生成
- 二级域名可以设置domain为二级域名或者顶级域名
设置登陆cookie信息共享
'user' => [
...
'identityCookie' => [
'name' => '_identity',
'httpOnly' => true,
'domain' => 'domain.com'
]
],
设置session共享
'session' => [
'cookieParams' => ['domain' => 'domain.com'],
],
这样在任意子域名登陆,其余子域名都能获取登陆状态,自动登陆。