繁体   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