Laravel测试中如何在get route中包含CSRF令牌?

时间:2018-08-22 12:30:50

标签: laravel laravel-testing laravel-session

为防止CSRF攻击,我将带有当前CSRF令牌的状态参数添加到外部链接。当外部页面将用户重定向回我的网站时,它将包含状态。

在一个简单的条件下,我可以在控制器中对其进行检查:

START RequestId: 1155953d-b645-11e8-883f-bb9cff5533aa Version: $LATEST
2018-09-12T04:33:59.966Z    1155953d-b645-11e8-883f-bb9cff5533aa    { TopicArn: 'arn:aws:sns:eu-west-1:XXX:XXX',
  Message: 'TEST' }
2018-09-12T04:34:00.516Z    1155953d-b645-11e8-883f-bb9cff5533aa    Promise { <pending> }
END RequestId: 1155953d-b645-11e8-883f-bb9cff5533aa
REPORT RequestId: 1155953d-b645-11e8-883f-bb9cff5533aa  Duration: 610.75 ms Billed Duration: 700 ms     Memory Size: 128 MB Max Memory Used: 32 MB  

现在,我想为它编写一个通过if条件的测试,但是csrf_token()在测试目录中为空,但是在控制器中不是。不幸的是,它失败了。这是测试的摘录:

if($data['state'] !== csrf_token()){
    throw new TokenMismatchException;
}

是否可以之前生成令牌?

0 个答案:

没有答案