Обойти страницу входа в auth0 для запуска тестов e2e с Jest & Puppeteer - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть веб-приложение React / Node, которое использует Auth0 для аутентификации пользователя.Я настроил Puppeteer на localhost:3000, который перенаправляет меня на страницу входа, когда я хочу протестировать свое приложение, потому что у меня нет JWT (или access_token).Кроме того, мой auth0 настроен на использование MFA, при котором после этого шага мне будет предоставлен мой JWT.

Другими словами, прежде чем я попаду в свое веб-приложение, я всегда попаду на страницу входа с запросом электронной почты./ пароль, затем будет выдано SMS для проверки через MFA (многофакторная аутентификация).Только после этого будет перенаправлен в веб-приложение с токеном.Я просто хочу войти и протестировать свое веб-приложение, а не Auth0.

В первой попытке я попытался создать.grant_type из client_credentials и добавив этот URL: https://YOUR_AUTH0_DOMAIN/oauth/token, но я не получил ничего релевантного.

Второе решение, о котором я подумал, - это обновить правила в моей панели Auth0, чтобы проверить наличие конкретного тестового электронного письма ипропустите MFA, но это кажется рискованным и может нарушить существующую функцию входа в систему.Это было настроено другим разработчиком, и я не чувствую себя в безопасности, касаясь его.

Можно ли запустить другой сервер с способом издевательства над службой Auth0?Поэтому перед любым из моих тестов у меня есть какой-то mock-JWT, который проверит меня на сервере моего приложения и сохранит mock-JWT в браузере Chromium как localStorage?Что-то вроде ...

test('Navigate to Endpoint auth page', async () => {
  // Run mock server that mock's Auth0 service
  // Store mock-JWT in Chromium's browser like so:
  // await page.evaluate(()=> localStorage.setItem('mockJWT'));

  page = await global.__BROWSER__.newPage();
  await page.goto('localhost:3000', { waitUntil: ['load', 'domcontentloaded'] });

Я не уверен, как подойти к этому или что еще попробовать.Если у кого-то есть идеи или свободное время, все будет полезно, спасибо!

...