3

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

4

0 回答 0