Я знаю, что когда я вызываю конечную точку входа в API, Laravel кэширует тот факт, что пользователь вошел в систему, поэтому следующий вызов API в тесте будет считать, что пользователь уже аутентифицирован...
Итак, для одного теста, как мне отключить эту магию кэширования аутентификации Laravel, чтобы я мог вручную предоставить токен аутентификации носителя, чтобы проверить, работает ли моя пользовательская логика аутентификации. работает?
Я думаю что-то вроде очистки защиты в AuthManager или полной очистки AuthManager, чтобы Laravel был вынужден повторно инициализировать его. Но мне не удалось выяснить, как это сделать так, чтобы это работало.
Вот псевдопример кода:
Код: Выделить всё
public function testLogin()
{
$responseData = $this->post('/login', ['email' => $this->user->email, 'password' => 'password'])->json();
$this->get('/endpoint-requiring-auth')->assertOk();
//
// $this->logicToResetAuth() ?
//
$this->get('/endpoint-requiring-auth')->assertUnauthorized();
// I want to manually have to pass the token to get it to work now.
$this->get('/endpoint-requiring-auth', ['Authorization' => "Bearer $responseData[access_token]"])
->assertOk();
}
О да, я пишу собственную логику на базе библиотеки JWT-Auth.
п>
Подробнее здесь: https://stackoverflow.com/questions/661 ... s-in-tests
Мобильная версия