与www的Cakephp auth组件问题。没什么

时间:2014-07-29 00:54:10

标签: cakephp authentication cookies cakephp-2.0

对于cakephp的auth组件有一个奇怪的问题。网址www.example.com和example.com使用不同的Cookie来处理身份验证。如何让两个网址都使用相同的Cookie?我知道这是一个非常模糊的问题,但我不确定我应该发布什么代码。

2 个答案:

答案 0 :(得分:1)

同时不允许两个域 - 同时显示相同的内容。设计失败。 只允许其中一个,通常是www。一。 另一个应该301重定向到那个

互联网上有大量的脚本,在这里有关于如何进行htaccess重定向的问题。 例如:http://www.stepforth.com/resources/web-marketing-knowledgebase/non-www-redirect/#.U9b1fvnMnIY

答案 1 :(得分:0)

我认为我对类似问题的回答将适用于您所要求的内容:

CakePHP keep session from main domain across to a subdomain


<强>会话

根据this page,要使会话Cookie对您的所有子域和顶级域有效,您实际上需要在APP/config/bootstrap.php文件中自行设置:

ini_set('session.cookie_domain', '.domain.com');

然后,在您的APP/config/core.php文件中,将Security设置为low:

Configure::write('Security.level', 'low');
  

“否则referer_check将被设置为当前的HTTP_HOST   CakeSession对象行441。“



<强>饼干:

this page上,它解释了您可以使用'domain'变量:

  

允许访问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;
}