我有一个运行良好的 CakePHP 网站。
我刚刚开发了一项新功能,可以在某一时刻自动登录用户,并将他重定向到登录墙后面的页面。
这在我的开发机器上运行良好,但在生产中,用户被重定向到登录页面。
相关代码:(不多)
$objCustomer = $this->Customer->findById($customerId);
$this->Auth->login($objCustomer);
$this->redirect("/customers/signup");
Customer 是用于身份验证的模型。
在服务器中,我看到我被重定向到 /customers/signup,这将我重定向到 /customers/login
最让我困惑的是这在我的机器上完美运行。
我在服务器中转储了 Auth->Login 的返回值,它返回 1,所以理论上一切都很好,用户应该已经登录。
我能想到的一些事情在我的机器和服务器之间是不同的:
- 开发机器是 Windows,服务器是 Linux。这有时会引入区分大小写的问题,但我重定向到的注册方法都是小写的,我看不出这里可能存在这样的问题。
- 开发机器是 IIS,服务器是 LiteSpeed。也许 Litespeed 搞砸了?这将是一年多以来第一次在生产中运行这个网站,我会因为 LiteSpeed 而发现一些不同的东西
- 生产站点通过 SSL,开发站点不是。我不明白这怎么可能是个问题。
任何想法都是无限欢迎的!
谢谢!