我们如何从黄昏浏览器发送POST请求?我在黄昏测试用例中发送POST请求,从管理员用户以不同的用户身份登录,但调试显示它出现403错误,这很明显,因为我没有通过浏览器实例发送请求。详细说明我正在做的是我正在尝试测试
public function testLoginAs()
{
$original = factory(User::class)->create([
'roles' => ['admin'],
]);
$other = factory(User::class)->create();
$this->browse(function (Browser $browser) use ($original, $other) {
$browser
->loginAs($original)
->assertAuthenticated()
->assertAuthenticatedAs($original)
->visit('/');
// Only admin can perform this action
$response = $this->call('POST', route('login.as', $other), ['_token' => csrf_token()]);
//dd($response);
$browser
->visit('/')
->assertAuthenticated()
->assertAuthenticatedAs($other);
});
}
以下是测试中dd($response)
的错误消息。
Sorry, you are not authorized to perform this action.
You are not currently logged in.
有什么办法可以从黄昏浏览器发送POST
来电吗?像
$browser->call('POST', route('login.as', $other));
// OR
$browser->post(route('login.as', $other));
我错过了什么吗?
为避免出现CSRF令牌问题,我添加了['_token' => csrf_token()]
,并尝试使用use WithoutMiddleware;
,但没有结果。