0

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

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

我在用

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

这在路线

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

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

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

4

1 回答 1

1

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

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

1) 这是什么时候发生的?这有多频繁?在某些时候,会话将过期,如果您长时间保持表单打开,它将过期。

2)您使用的是哪个会话驱动程序?你是不是已经换过驱动了?(文件、cookie、数据库...)

3)你能重现它吗?

4) 您能否跟踪 Session::getId() 以查看当您收到该错误时它是否也发生了变化?将此添加到您的代码中,并查看日志文件以了解当您收到该错误时会发生什么:

Log::info('session.id='.Session::getId());
Log::info('session.token='.Session::token());
于 2013-11-15T11:34:11.887 回答