2017-06-16 150 views
2

几个月前,我已经在5.4上升级了2个laravel应用程序。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

您需使用EncryptCookies中间件your're访问路线。你有'网络'中间件组适用于你的路线?

你的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', 
    ], 

]; 

那么你可以申请“网络”到你的路由/组。

+0

感谢您的回答。我有这些路由的EncryptCookies中间件。 “网络”中间件组适用于这些路线。 –

0

确保您用于存储加密的列足够长。

我得到了这个例外,因为我的64编码的字符串由于列长度而被剥离。

考虑到加密字符串的大小可以根据通过加密函数传递的文本的大小而改变。

+0

谢谢,很高兴知道。但它在Redis之下,所以我不认为达到了极限。 –