几个月前我在5.4上升级了2个laravel应用程序。
这些应用程序是在5.1上创建的,我在任何发布发布后的一个月内都会遵循升级指南。
从5.4开始,我经常在POST请求上出现这种错误:
Illuminate\Contracts\Encryption\DecryptException·The payload is invalid
app/Http/Middleware/CheckForMaintenanceMode.php:43App\Http\Middleware\CheckForMaintenanceMode::handle
throw new HttpException(503);
}
return $next($request); //line 43
}}
大部分时间POST请求都没问题,但有时候(1000上的1个POST请求)我有这个错误。我无法重现它。
由于
答案 0 :(得分:1)
确保用于存储加密的列足够长。
我得到了同样的异常,因为我的64位编码字符串由于列长而被剥离。
考虑到加密字符串的大小可以根据通过加密函数传递的文本的大小而改变。
答案 1 :(得分:0)
您需要将EncryptCookies
中间件用于您正在访问的路由。你有“网络”吗?中间件组适用于您的路线?
你的Http内核应该包含它:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],
'api' => [
'bindings',
],
];
然后你可以申请网络'到您的路线/团体。