Laravel Framework 5.4.17
Zend TechnologiesPHP 7.1.3-3+deb.sury.org~yakkety+1 (cli) (built: Mar 25 2017 14:01:32) ( NTS )Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.1.3-3+deb.sury.org~yakkety+1, Copyright (c) 1999-2017,
mysql Ver 14.14 Distrib 5.7.17, for Linux (x86_64) using EditLine wrapper
我的日志不断填满:
Illuminate\Session\TokenMismatchException in /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:68
来自Session.php
'encrypt' => true,
'http_only' => true,
来自.env
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_SECURE_COOKIE=true
QUEUE_DRIVER=sync
我的网站正在运行最新的NGINX,并且正在使用带有SSL Cert的HTTPS来加密。我按照这个指南。 https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
所以我的网站只能通过HTTPS访问。在我的浏览器中,我可以看到cookie被发送给我。 Imgur
我不知道为什么会这样。
更新: 所以我将令牌标签添加到我拥有的每个论坛中,并且仍然记录加载令牌不匹配错误。我浏览了所有观点,并添加了它们看起来像......
<!-- Add comment -->
<div class="col-md-12">
{!! Form::open(array('route' => array('comment_torrent', 'slug' => $torrent->slug, 'id' => $torrent->id))) !!}
{{ csrf_field() }}
<div class="form-group">
<label for="content">Your comment:</label><span class="badge-extra">Type <strong>colon :</strong> for emoji</span>
<textarea name="content" cols="30" rows="5" class="form-control"></textarea>
</div>
<button type="submit" class="btn btn-danger">{!! trans('traduction.save') !!}</button><label class="checkbox-inline"><input type="checkbox" name="confirmation"><strong>Anonymous Comment</strong></label>
{!! Form::close() !!}
</div>
<!-- /Add comment -->
答案 0 :(得分:1)
You get this error when you don't pass CSRF token with your form. You can just add {{ csrf_field() }}
in your forms and it will start working. For example:
<form method="POST" action="#>
{{ csrf_field() }}
// Your Fields here
</form>
Hope that helps! I am sure your error will be removed after adding {{ csrf_field() }}
to your forms. It's in-built security feature from Laravel.