我们如何从黄昏浏览器发送 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;
但没有结果。