2017-07-27 53 views
-1

假設用戶已打開兩個頁面。在其中的一箇中,觸摸註銷按鈕。然後在另一頁上,再次觸摸註銷按鈕。在laravel當連續兩次運行註銷路由時,我得到csrf令牌不匹配錯誤

與錯誤:

(1/1) TokenMismatchException 

In VerifyCsrfToken.php (line 68) 
At VerifyCsrfToken-> handle (object (Request), object (Closure)) in Pipeline.php (line 148) ...... 

。你有任何解決方案?

+0

爲什麼要註銷兩次? –

+0

@CarlosAfonso 假設用戶忘記了。 –

+0

假設用戶已經註銷您的頁面不應該顯示重新註銷的選項,如果這樣做會是您的系統的錯誤 –

回答

0

應用程序\例外\ Handler.php用戶返回到窗體具有一個新的有效CSRF令牌,所以頁面將刷新並註銷按鈕將不存在。

public function render($request, Exception $exception) 
{ 
    if($exception instanceof TokenMismatchException) 
    { 
     return redirect() 
       ->back() 
       ->with('your msg'); 
    } 
    return parent::render($request, $exception); 
} 

這看起來像,頁面刷新

Don't Replace POST with Get. It will not Safe And Standard.

+0

如果你能解釋爲什麼,它會很好。** **它不安全** 2. **它不是標準的**所以我們都可以學習和做對。 @Farshid Rezaei –

+0

@omisakin請告訴我,替換它,那麼爲什麼我應該處理錯誤?爲什麼拉拉維爾推薦漢德錯誤? –

+0

你可以解釋我所問的問題,以便我能理解,還有其他人可以看到這篇文章能夠理解爲什麼需要它。你的評論並沒有給我一個解釋。但如果你不能解釋,不要擔心。很好,你找到了適合你的答案。 –