Как мы можем отправить запрос POST из сумерки браузера? Я отправляю запрос POST в тестовом случае в сумерках от пользователя admin для входа в систему от имени другого пользователя, но отладка показывает, что он выдает ошибку 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;
но без результата.
Задача ещё не решена.
Других решений пока нет …