РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1189 of 1392 menu

Метод withToken

Метод withToken применяется к HTTP-клиенту в тестах Laravel и возвращает тот же экземпляр запроса, дополненный заголовком Authorization с Bearer-токеном. Первым параметром передаётся строка с токеном доступа. Вторым параметром можно указать тип токена (по умолчанию 'Bearer'). Этот метод особенно полезен при тестировании API-маршрутов, которые защищены middleware auth:api или аналогичными.

Синтаксис

<?php $this->withToken($token, $type = 'Bearer')->get($uri); ?>

Пример

Давайте протестируем защищённый маршрут, который требует наличия Bearer-токена в заголовке запроса:

<?php namespace Tests\Feature\Api; use Tests\TestCase; class UserProfileTest extends TestCase { public function test_authenticated_user_can_access_profile() { $token = 'valid-api-token-12345'; $res = $this->withToken($token) ->get('/api/user/profile'); $res->assertStatus(200); } } ?>

Результат выполнения кода:

"Test passed: status code 200"

Пример

Давайте проверим, что запрос с неверным токеном возвращает ошибку авторизации:

<?php namespace Tests\Feature\Api; use Tests\TestCase; class UserProfileTest extends TestCase { public function test_invalid_token_returns_unauthorized() { $invalidToken = 'invalid-token-xyz'; $res = $this->withToken($invalidToken) ->get('/api/user/profile'); $res->assertUnauthorized(); } } ?>

Результат выполнения кода:

"Test passed: unauthorized status 401"

Пример

Давайте используем метод withToken для создания новой статьи через API с аутентификацией:

<?php namespace Tests\Feature\Api; use Tests\TestCase; class ArticleCreateTest extends TestCase { public function test_authenticated_user_can_create_article() { $token = 'user-auth-token-67890'; $data = [ 'title' => 'article', 'content' => 'content' ]; $res = $this->withToken($token) ->postJson('/api/articles', $data); $res->assertCreated() ->assertJson([ 'status' => 'success' ]); } } ?>

Результат выполнения кода:

"Test passed: article created with status 201"

Смотрите также

  • метод actingAs,
    который выполняет аутентификацию через пользовательскую модель
  • метод withHeaders,
    который добавляет произвольные заголовки к запросу
  • метод withSession,
    который устанавливает данные сессии для запроса
  • метод withoutMiddleware,
    который отключает middleware для тестового запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить