2017-06-16 149 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之下,所以我不認爲達到了極限。 –