gpt4 book ai didi

session - CakePHP 保持从主域到子域的 session

转载 作者:行者123 更新时间:2023-12-04 01:52:16 25 4
gpt4 key购买 nike

我正在使用 Cakephp,但在跨子域维护 session 时遇到了问题。我的问题如下:

  • 用户登录“本地主机/登录”
  • 如果通过身份验证,它们将被重定向到“customer.localhost/home”。

  • 目前 Cake 正在为每个域创建一个 cookie,即 localhost 和 customer.localhost。
    这意味着我无法让 session 为用户工作。有没有办法将所有 cookie 域固定到父域,以保持 session 跨子域工作?

    我试过在我的 bootstrap 中输入它,但它没有效果:
    ini_set('session.cookie_domain', '.localhost');

    如果您认为这无法完成,请随时告诉我,以便我可以解决这个令人沮丧的问题。

    非常感谢,

    克苏多

    最佳答案

    session (CakePHP 2.x):

    要使 session cookie 对您的所有子域和顶级域有效,您实际上需要在 APP/config/bootstrap.php 中自行设置。文件:

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

    然后,在您的 APP/config/core.php文件,将安全设置为低:
    Configure::write('Security.level', 'low');

    "otherwise the referer_check will be set to the current HTTP_HOST in the CakeSession object line 441."



    session (CakePHP 3.x)

    The session cookie path defaults to app’s base path. To change this you can use the session.cookie_path ini value. For example if you want your session to persist across all subdomains you can do:


    Configure::write('Session', [
    'defaults' => 'php',
    'ini' => [
    'session.cookie_path' => '/',
    'session.cookie_domain' => '.yourdomain.com'
    ]
    ]);



    cookies (CakePHP 2.x):

    this page它说明您可以使用“域”变量:

    The domain name allowed to access the cookie. e.g. Use ‘.yourdomain.com’ to allow access from all your subdomains.



    根据他们的示例代码:
    <?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;
    }

    cookies (CakePHP 3.x):

    Read here .

    The domain that the cookie is available. To make the cookie available on all subdomains of example.com set domain to ‘.example.com’.

    关于session - CakePHP 保持从主域到子域的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10519570/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com