【问题标题】:Laravel 5.4 TokenMismatchExceptionLaravel 5.4 令牌不匹配异常
【发布时间】:2017-10-24 20:12:25
【问题描述】:

一切正常,但突然我收到此错误TokenMismatchException in VerifyCsrfToken.php line 68:

我尝试过的

我已经检查了我的表单,我使用了{!! csrf_field() !!},我也使用了<meta name="csrf-token" content="{{ csrf_field() }}" />,并且两个都匹配..

请检查此网站的登录名并输入任何登录信息,您将看到错误。 http://egypt-pets.com/login

表格代码

 {{ Form::open(['route' => 'login', 'class' => 'form-signin', 'method' => 'post']) }}
         <h3 class="form-signin-heading">Welcome Back! Please Login</h3>
         <hr class="colorgraph"><br>
         {{ Form::label('email', 'Email: ') }}
         <input type="text" class="form-control" name="email" placeholder="example@example.com" required="" autofocus="" />

         {{ Form::label('password', 'Password: ', ['class' => 'margin-top-20']) }}
         <input type="password" class="form-control" name="password" placeholder="******" required=""/>

         <div class="checkbox">
            <label>
                <input style="width: 16px; margin-top: -11px;" type="checkbox" name="remember" {{ old('remember') ? 'checked' : '' }}> Remember Me
            </label>
        </div>

        <button class="btn btn-lg btn-success btn-block"  name="Submit" value="Login" type="Submit"><i class="fa fa-user-o"></i> Login</button>
        <a class="btn btn-link" href="{{ route('password.request') }}">
            Forgot Your Password?
        </a>
        <a class="btn btn-link pull-right" href="{{ route('register') }}">
            Doesn't have an account?
        </a>
        <a href="login/facebook" class="btn btn-primary btn-block btn-lg margin-top-20" style="background-color: #3B5998"><i class="fa fa-facebook" style="margin-right: 10px"></i> Login In With Facebook</a>
{{ Form::close() }}

我没有使用{{ csrf_field() }},因为我使用了HTML帮助,已经把它..我也尝试使用普通形式并使用{{ csrf_field() }}并得到同样的错误

【问题讨论】:

  • 试试&lt;meta name="csrf-token" content="{{ csrf_token() }}" /&gt;也不要同时使用meta和field
  • 同样的错误没什么新的@TimvanUum
  • 您能出示完整的表格吗?您可能没有将csrf_field() 放在正确的位置。
  • 我在您的网站上看不到 cookie。你在用 cookie 做点什么吗?
  • 请访问链接并使用查看页面源码

标签: php laravel session token csrf


【解决方案1】:

首先删除{!! csrf_field() !!}&lt;meta name="csrf-token" content="{{ csrf_field() }}" /&gt;

然后按照以下步骤操作

在您的表单中:

&lt;form&gt; 标签之后

添加关注

{{ csrf_field() }}


【讨论】:

  • {{ csrf_field() }} 会将其作为纯文本。如果您想输出 html,请使用{!! !!},他确实正确。
  • 不,{{ csrf_field() }} 是正确的。查看文档:laravel.com/docs/5.4/csrf#csrf-introduction
  • @Doe 你删除了 吗?我可以在您网站上的表单中看到此代码...可能是这导致了问题。
  • 是的,还是一样
  • 您可以先尝试回显 csrf 值 {{ csrf_token() }},如果您从中得到一个字符串,您可以尝试使用 &lt;input name="_token" type="hidden" value="{{ csrf_token() }}"&gt;@Doe 将其添加到您的表单中
【解决方案2】:

我猜这个问题是因为你离开浏览器很长时间你试图登录而不刷新,它总是发生在我身上,只需刷新页面它就会消失,我打开了你的网站链接并登录了它工作正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 2017-05-27
    相关资源
    最近更新 更多