#oauth #jwt #google-oauth #integration-testing #google-signin
#oauth #jwt #google-oauth #интеграция-тестирование #google-вход
Вопрос:
У меня есть API, который принимает токены Google id стандартным способом, описанным здесь.
- пользователь открывает всплывающее окно Google OAuth и выбирает учетную запись
- всплывающее окно закрывается с помощью Google id JWT
- JWT отправляется на мой API
/login
или/register
конечную точку - серверная часть декодирует и проверяет JWT, а затем использует содержащиеся в нем утверждения для соответствующей регистрации или входа пользователя.
У меня также есть набор простых интеграционных тестов, которые выполняются с API, включая тесты на то, может ли он регистрировать или регистрировать пользователя с использованием электронной почты / пароля.
Я хотел бы написать тесты на то, правильно ли /login
и /register
работают с Google JWT, но я не могу придумать способ, учитывая, что JWT по дизайну действительны только при подписании Google, что я не могу получить в автоматических тестах. Мои текущие идеи:
- какая-то конфигурация, которая пропускает проверку JWT в режиме разработки / тестирования — это сработало бы, но введение потенциальной уязвимости безопасности ради теста похоже на запах кода
- не тестируется: (
Есть идеи?
Комментарии:
1. Объем того, что вы пытаетесь протестировать, неясен. Использует ли ваш сервер клиентские библиотеки Google для проверки токена?
2. @identigral да
3. Предполагая, что вы не заинтересованы в тестировании библиотек Google, можно просто издеваться над библиотекой для возврата утверждений на основе вашего собственного JWT.
4. Спасибо — да, я пытался избежать насмешек, поскольку они являются интеграционными тестами.
5. Правильно. Вам может оказаться полезной классификация Мартина Фаулера широких и узких интеграционных тестов .