从laravel黄昏浏览器发送POST调用

时间:2018-01-02 05:19:54

标签: php laravel-5.5 laravel-dusk laravel-dusk2

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

0 个答案:

没有答案