簡體   English   中英

令牌不匹配僅在每次第一次嘗試laravel 5.1時出現異常

[英]Token mismatch exception only on every first attempt laravel 5.1

每次我在一小時左右后第一次登錄我的應用程序或每次在新設備上登錄時都會出現令牌不匹配異常。 但是當我在問題消失后再次嘗試時。 我在存儲/框架/會話上使用755 - 我在我當地的流浪漢蘇格蘭威士忌盒1.5盒以及onmy Digital Ocean LAMP上遇到了同樣的問題。 有任何想法嗎?

問題是CSRF令牌已過期,您的瀏覽器需要一個新令牌才能發出POST請求。 Laravel默認的到期時間為2小時。

我有同樣的問題,我正在嘗試這個解決方案https://laracasts.com/discuss/channels/general-discussion/crsf-checked-before-auth

更新:

您需要更新app / Exceptions / Handler.php中的render方法並處理Exception:TokenMismatchException

代碼示例

   /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Exception  $e
     * @return \Illuminate\Http\Response
     */
    public function render($request, Exception $e)
    {
        if ($e instanceof \Illuminate\Session\TokenMismatchException) {
            return redirect('/')->with('message', 'Sorry, your session seems to have expired. Please login again.');
        }

        if ($e instanceof ModelNotFoundException) {
            $e = new NotFoundHttpException($e->getMessage(), $e);
        }

        return parent::render($request, $e);
    }

我不得不告訴你,如果你正在為一個Laravel項目編寫代碼,你應該嘗試一下宅基地盒,我現在已經使用它一年了,並沒有發生任何奇怪的問題,我的登錄工作完美無缺。

http://laravel.com/docs/5.1/homestead

也許這可以幫助你更快地解決當前盒子上的問題:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM