拉拉维尔中CSRF令牌不匹配的可能原因


Possible cause of CSRF token mismatching in laravel

在我的Web应用程序alpha测试中,一个是两个恶魔在抱怨csrf令牌不匹配问题,

有没有办法在不进入Laravel测试功能的情况下检查CSRF令牌是否正常工作?

我正在使用

Route::post('signup', array('before' => 'guest|csrf','uses' => 'AuthController@postSignup'));

这在路线

<input type="hidden" name="_token" value="{{ csrf_token() }}" />

在表格里面,我做错了什么吗?

我还想知道,用户手动输入与csrf令牌不匹配的可能原因是什么?

如果您使用 Form::open() ,Laravel 4 会自动为您添加令牌。您的表单中没有两个令牌吗?

令牌是存储在当前Session中的随机字符串,因此,如果您遇到问题,您应该查看您的会话并回答一些问题(对自己):

1)这是什么时候发生的?这种情况的频率如何?在某个时候,会话将过期,如果您长时间保持表单打开状态,它将过期。

2)你正在使用的驱动程序吗?您是否已经更改了驱动程序?(文件、饼干、数据库...

3)你能复制它吗?

4)你能跟踪Session::getId()看看当你收到这个错误时它是否也会改变吗?将其添加到您的代码中,并查看日志文件,了解收到该错误时发生的情况:

Log::info('session.id='.Session::getId());
Log::info('session.token='.Session::token());