2015-06-28 58 views
2

當前我正在使用laravel項目如何處理laravel中的TokenMismatch異常5

而且我在頁面上看到此錯誤感到不適。

我不讓我的用戶看到這個異常,即使我已經注意到了這一點。

但預防勝於治療!

那麼有沒有什麼辦法可以在laravel中處理這個異常。

回答

4

在你Exception\Handler類的render()方法捕獲該異常通過

if ($e instanceof \Illuminate\Session\TokenMismatchException) { 
    // Your code 
} 

和渲染你的錯誤頁面,或做任何其他的東西與此異常。

-1

來處理這個異常去your_laravel_folder /供應商/ compiled.php ,找到這個::

public function handle($request, Closure $next) 
{ 
    if ($this->isReading($request) || $this->tokensMatch($request)) { 
     return $this->addCookieToResponse($request, $next($request)); 
    } 
     throw new TokenMismatchException(); 
} 

和評論拋出新TokenMismatchException();和你想要的這裏是例子

public function handle($request, Closure $next) 
{ 
    if ($this->isReading($request) || $this->tokensMatch($request)) { 
     return $this->addCookieToResponse($request, $next($request)); 
    } 
    abort(404); 
    //throw new TokenMismatchException(); 
} 
0

如果你不需要的CSRF保護您可以在

應用程序禁用中間件/ HTTP/Kernel.php

如果以後你的應用環境設置爲生產,用戶不會看到反正錯誤信息。