Как сбросить Laravel AuthManager/guards между вызовами API в тестах?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как сбросить Laravel AuthManager/guards между вызовами API в тестах?

Сообщение Anonymous »

Я пишу функциональный тест для API и хочу протестировать пользовательскую логику аутентификации.
Я знаю, что когда я вызываю конечную точку входа в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»