会话(CakePHP 2.x):
要使会话 cookie 对您的所有子域和顶级域有效,您实际上需要在APP/config/bootstrap.php
文件中自行设置:
ini_set('session.cookie_domain', '.domain.com');
然后,在您的APP/config/core.php
文件中,将 Security 设置为低:
Configure::write('Security.level', 'low');
“否则,referer_check 将设置为 CakeSession 对象第 441 行中的当前 HTTP_HOST。”
会话(CakePHP 3.x)
会话 cookie 路径默认为应用程序的基本路径。要更改这一点,您可以使用 session.cookie_path ini 值。例如,如果您希望会话在所有子域中持续存在,您可以执行以下操作:
Configure::write('Session', [
'defaults' => 'php',
'ini' => [
'session.cookie_path' => '/',
'session.cookie_domain' => '.yourdomain.com'
]
]);
饼干(CakePHP 2.x):
在此页面上,它解释了您可以使用“域”变量:
允许访问 cookie 的域名。例如,使用“.yourdomain.com”允许从您的所有子域进行访问。
根据他们的示例代码:
<?php
public $components = array('Cookie');
public function beforeFilter() {
parent::beforeFilter();
$this->Cookie->name = 'baker_id';
$this->Cookie->time = 3600; // or '1 hour'
$this->Cookie->path = '/bakers/preferences/';
$this->Cookie->domain = 'example.com';
$this->Cookie->secure = true; // i.e. only sent if using secure HTTPS
$this->Cookie->key = 'qSI232qs*&sXOw!';
$this->Cookie->httpOnly = true;
}
饼干(CakePHP 3.x):
在这里阅读。
cookie 可用的域。要使 cookie 在 example.com 的所有子域上可用,请将 domain 设置为“.example.com”。