Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jwt 绕过auth0中的登录页面,使用Jest&;运行e2e测试;木偶演员_Jwt_Jestjs_Integration Testing_Auth0_Puppeteer - Fatal编程技术网

Jwt 绕过auth0中的登录页面,使用Jest&;运行e2e测试;木偶演员

Jwt 绕过auth0中的登录页面,使用Jest&;运行e2e测试;木偶演员,jwt,jestjs,integration-testing,auth0,puppeteer,Jwt,Jestjs,Integration Testing,Auth0,Puppeteer,我有一个React/Node web应用程序,它利用Auth0进行用户身份验证。我已经将Puppeter设置为点击localhost:3000,当我想测试我的应用程序时,它会一直将我重定向到登录页面,因为我没有JWT(或access\u token)。此外,我的auth0被设置为具有MFA,在此步骤之后,它将为我提供JWT 换句话说,在我点击我的web应用程序之前,我总是会点击登录页面询问电子邮件/密码,然后会收到短信,通过MFA(多因素认证)进行验证。只有在之后才会使用令牌重定向到webapp

我有一个React/Node web应用程序,它利用Auth0进行用户身份验证。我已经将Puppeter设置为点击
localhost:3000
,当我想测试我的应用程序时,它会一直将我重定向到登录页面,因为我没有JWT(或
access\u token
)。此外,我的auth0被设置为具有MFA,在此步骤之后,它将为我提供JWT

换句话说,在我点击我的web应用程序之前,我总是会点击登录页面询问电子邮件/密码,然后会收到短信,通过MFA(多因素认证)进行验证。只有在之后才会使用令牌重定向到webapp。我只想进入并测试我的web应用程序,而不是Auth0

在我的第一次尝试中,我尝试创建一个
grant\u type
of
client\u凭证
并点击此url:
https://YOUR_AUTH0_DOMAIN/oauth/token
但我没有得到任何相关的回复

我想到的第二个解决方案是更新Auth0仪表板中的规则,以检查特定的测试电子邮件并跳过MFA,但这会带来风险,可能会破坏现有的登录功能。这是另一个开发人员设置的,我觉得触摸它不安全

是否可以使用模拟Auth0服务的方式运行另一台服务器?因此,在我进行任何测试之前,我都有一些模拟JWT,它将在我的应用程序服务器中验证我,并将模拟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'] });

我不知道该怎么做,也不知道该尝试什么。如果有人有任何想法或业余时间,任何事情都会有帮助,谢谢

不确定在Puppeter中如何实现这一点,但如果您正在进行单元测试,则可以使用像nock这样的http拦截器并返回您想要的任何响应。我想我记得wdio或cypress支持类似的行为,但无论如何,我认为你的思路是正确的。我会建立一个私人测试用户帐户,你可以给木偶师,并让它这样做。或者更改授权以接受允许您登录并发出请求的临时令牌。