unserialize():偏移量为0的40字节错误

Han*_*emi 36 laravel

我想在localhost中运行我的应用程序,php artisan serve但是我得到这个错误unserialize(): Error at offset 0 of 40 bytes我的问题在哪里?

小智 59

您必须设置新闻密钥生成因为

php artisan key:generate
Run Code Online (Sandbox Code Playgroud)

在那次测试之后再次运行Laravel应用程序

php artisan serve
Run Code Online (Sandbox Code Playgroud)

  • 因为 cookie 与应用程序密钥关联,如果您更改密钥,就好像您的应用程序再次没有 cookie (2认同)

ste*_*fel 52

当我将Laravel 5.5应用程序升级到5.6时,我遇到了同样的错误.错误来自EncryptCookies-Middleware.

删除浏览器中的cookie和/或清除Laravel应用程序中的会话文件.


小智 11

我也遇到过同样的问题。我在无家可归的环境中经常遇到这个问题。要在Laravel 5.4、5.5、5.6或更高版本中解决此问题,

PHP的工匠配置:清除

php artisan视图:清除

PHP的工匠键:生成


qad*_*han 5

几天前,当我从Envoyer将生产更新推送到Laravel项目时,出现了相同的错误。

立即修复: 我尝试回滚到上一次提交,但问题仍然存在,这意味着问题源自客户端,可能是Cookie。我尝试删除Cookie,但问题消失了。

后来,我花了很多时间寻找此问题,但直到今天再次遇到另一个部署问题时,我什么都没得到,我在Laravel新闻中找到有关安全修补程序 5.6.30更新的文章。如果我尝试为已经使用> v5.6.30的项目部署laravel v5.6.26的先前版本(<5.6.30),并且已经创建(未序列化)cookie,则可以确定出现此问题。 <5.6.30版本的框架尝试错误地反序列化结果,因为未正确识别结果。

  • 安装laravel / framework(v5.6.26)从缓存加载

从升级指南:

配置Cookie序列化由于不访问应用程序的加密密钥就无法利用此漏洞,因此我们选择提供一种方法来重新启用加密的Cookie序列化,同时使您的应用程序与这些更改兼容。要启用/禁用cookie序列化,您可以更改App \ Http \ Middleware \ EncryptCookies中间件的静态序列化属性:

我能够通过清除composer的缓存来永久解决此问题,从而强制其加载框架的最新版本,而不是回退到缓存。

希望这可以帮助。

最好的


Bed*_*ang 5

只需检查浏览器中的元素,然后转到应用程序选项卡并选择 cookie 并删除所有 cookie。就是这样。