在同一域中具有多个 Laravel 实例时的会话/cookie 错误

Posted

技术标签:

【中文标题】在同一域中具有多个 Laravel 实例时的会话/cookie 错误【英文标题】:Session/cookie error when having multiple instance of Laravel in the same domain 【发布时间】:2012-10-25 08:37:28 【问题描述】:

你好,我最近开始为我的 Facebook 应用程序使用 Laravel 框架,我创建了一个基本应用程序,我为每个新项目复制并从那里开始修改。我要做的第一件事是在 config/application.php 文件中更改应用程序密钥中的几个字母。

现在,如果我同时开发 2 个应用程序并在它们之间不断切换,我会遇到某种缓存/cookie 错误,这些错误会阻止我的应用程序显示。 我可以通过删除与我存储应用程序的域相关的 cookie 来摆脱它们,但据我了解,碰巧访问我的两个应用程序的用户可能会发生同样的事情。

我怎样才能让它正常工作?

这是我得到的错误:

Unhandled Exception

Message:

unserialize() [function.unserialize]: Error at offset 0 of 704 bytes
Location:

/mydomainpath/myapp/laravel/session/drivers/cookie.php on line 24
Stack Trace:

#0 /mydomainpath/myapp/laravel/laravel.php(40): Laravel\Error::native(8, 'unserialize() [...', '/data01/virt319...', 24)
#1 [internal function]: Laravel\closure(8, 'unserialize() [...', '/data01/virt319...', 24, Array)
#2 /mydomainpath/myapp/laravel/session/drivers/cookie.php(24): unserialize('??1?:????9O??.?...')
#3 /mydomainpath/myapp/laravel/session/payload.php(52): Laravel\Session\Drivers\Cookie->load('oBACwMEgwF2YXeZ...')
#4 /mydomainpath/myapp/laravel/session.php(35): Laravel\Session\Payload->load('oBACwMEgwF2YXeZ...')
#5 /mydomainpath/myapp/application/start.php(172): Laravel\Session::load()
#6 /mydomainpath/myapp/laravel/bundle.php(102): require('/data01/virt319...')
#7 /mydomainpath/myapp/laravel/laravel.php(76): Laravel\Bundle::start('application')
#8 /mydomainpath/myapp/public/index.php(34): require('/data01/virt319...')
#9 main

【问题讨论】:

【参考方案1】:

您的 cookie 设置在您的项目中应该有所不同。如果他们不这样做,那可能是它被覆盖的原因。

检查你的 application/config/session.php 文件。

【讨论】:

我必须更改 cookie 名称,以便它们在不同的应用程序上有所不同。这样做可以使一个应用程序不会覆盖另一个应用程序的会话 cookie。

以上是关于在同一域中具有多个 Laravel 实例时的会话/cookie 错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Nginx 在同一域中具有不同位置的多个配置(React App)

如何检查用户是不是通过 Laravel 上的 cookie 会话进行身份验证?

如何在同一个域上运行多个 Laravel 实例?

通过多个 Laravel 5 安装跨子域共享身份验证会话

如何跨同一个 Web 应用程序的多个实例存储会话信息? [复制]

Laravel 4.1 - 多个 ajax 请求导致会话持久性失败