Проблемы с аутентификацией Laravel Dusk с Laravel Passport - PullRequest
0 голосов
/ 25 сентября 2019

Невозможно протестировать приложения с Laravel Dusk, если приложение использует Laravel Passport для аутентификации.Это всегда 404, и если вы остановите тест с помощью ->stop(), он начнет работать.

Приложение расположено: localhost:3000, и все запросы проксированы на api.example.test

Я пыталсяаутентифицировать пользователя внутри теста:

$this->actingAs(User::find(1), 'api');
$browser->loginAs(User::find(1));
Passport::actingAs($this->user);

Но все так же.

Это не единственная проблема, я думаю, что главная проблема заключается также и в том, что я не могу войти с помощью Duskзаполнив форму и нажав кнопку «Войти»

$browser->visit('/login')
   ->type('@email', 'john@doe.com')
   ->type('@password', 'password')
   ->click('@login-button')
   ->waitForLocation('/');

Но опять же, если вы остановите тест с помощью ->stop(), вы можете вручную нажать кнопку, и он войдет в систему.

Является ли Laravel Dusk бесполезным, если ваше приложение не использует базовую аутентификацию?

1 Ответ

0 голосов
/ 25 сентября 2019

Решено.

Проблема заключалась в том, что в моем файле Dusk .env было APP_URL=localhost:3000, где расположен интерфейс, но в моем файле API .env было APP_URL=api.exmaple.com, и поэтому в моем AuthController, я выдал токен от env('APP_URL').'/oauth/token' <- что привело к Dusk env к <code>localhost:3000/oauth/token, что составляет от 404

Я изменил его на env('API_URL') и добавил это значение в оба моих файла .env.

...