我正在正常处理我的项目,当我点击刷新以查看我在其中一个html页面中所做的更改时,页面左上角显示了一条文本“重定向到:http://localhost:8888/xxx”。它将我重定向到登录页面。当我点击登录时,'TokenMismatchException'错误显示:
登录表单有隐藏的输入_token,标题也有。正如我说的一切都很好。我这个项目已经工作了2个月。这与文件权限有关吗?
这是登录表单。
<form class="form-horizontal" role="form" method="POST" action="{{ url('/login') }}">
{{ csrf_field() }}
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label for="email" class="col-md-4 control-label">E-Mail Address</label>
<div class="col-md-7">
<input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required autofocus>
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
<label for="password" class="col-md-4 control-label">Password</label>
<div class="col-md-7">
<input id="password" type="password" class="form-control" name="password" required>
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-8 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Login
</button>
<a class="btn btn-link" href="{{ url('/password/reset') }}">
Forgot Your Password?
</a>
</div>
</div>
</form>
谢谢:)
答案 0 :(得分:3)
在我安装了一个新的laravel副本后,我开始粘贴我的旧文件,看看哪里会重新生成不匹配令牌问题。 它转到routes / web.php文件。那里有东西导致错误。 这是在routes / web.php文件的php开头标记之前的空格。 一些没有引起我注意的东西。就像那个项目工作正常,但突然间不再了。
正如我所读,空间被视为输出。检查这个解释: https://stackoverflow.com/a/4345822/6634389
答案 1 :(得分:2)
为什么不使用{{csrf_field()}}或尝试使用它?
答案 2 :(得分:2)
执行命令
php artisan cache:clear; composer dump-autoload; composer clear-cache
刷新浏览器,确保为应用生成密钥。这应该工作。对我而言,确实如此。
答案 3 :(得分:1)
您正在刷新页面,因此每次页面都加载相同的csrf-token。因此,当您尝试发布数据时,laravel会拒绝它并提供错误消息,因为每个请求都应该有一个唯一的csrf-token。你可以在这里阅读laravekl csrf protection
您应该再次重新加载页面,或者您应该通过在
中注释来禁用csrf保护应用=&GT;的Http =&GT; Kernel.php
在$ middlewareGroups =&gt;'web'
中 \App\Http\Middleware\VerifyCsrfToken::class, //comment this line
答案 4 :(得分:1)
我遇到了同样的问题,我在视图中使用了以下解决方法
<input type="hidden" name="_token" value="{{ session()->getToken() }}">