Тестирование интеграции токена JWT id для входа в Google с внутренним API

#oauth #jwt #google-oauth #integration-testing #google-signin

#oauth #jwt #google-oauth #интеграция-тестирование #google-вход

Вопрос:

У меня есть API, который принимает токены Google id стандартным способом, описанным здесь.

  1. пользователь открывает всплывающее окно Google OAuth и выбирает учетную запись
  2. всплывающее окно закрывается с помощью Google id JWT
  3. JWT отправляется на мой API /login или /register конечную точку
  4. серверная часть декодирует и проверяет JWT, а затем использует содержащиеся в нем утверждения для соответствующей регистрации или входа пользователя.

У меня также есть набор простых интеграционных тестов, которые выполняются с API, включая тесты на то, может ли он регистрировать или регистрировать пользователя с использованием электронной почты / пароля.

Я хотел бы написать тесты на то, правильно ли /login и /register работают с Google JWT, но я не могу придумать способ, учитывая, что JWT по дизайну действительны только при подписании Google, что я не могу получить в автоматических тестах. Мои текущие идеи:

  • какая-то конфигурация, которая пропускает проверку JWT в режиме разработки / тестирования — это сработало бы, но введение потенциальной уязвимости безопасности ради теста похоже на запах кода
  • не тестируется: (

Есть идеи?

Комментарии:

1. Объем того, что вы пытаетесь протестировать, неясен. Использует ли ваш сервер клиентские библиотеки Google для проверки токена?

2. @identigral да

3. Предполагая, что вы не заинтересованы в тестировании библиотек Google, можно просто издеваться над библиотекой для возврата утверждений на основе вашего собственного JWT.

4. Спасибо — да, я пытался избежать насмешек, поскольку они являются интеграционными тестами.

5. Правильно. Вам может оказаться полезной классификация Мартина Фаулера широких и узких интеграционных тестов .