首页 > 解决方案 > 赛普拉斯无法使用新的 auth0-spa-js 包请求 API 或显示内容

问题描述

我尝试使用新包(https://github.com/auth0/auth0-spa-js)登录到 Auth0。

尝试 1:我确实尝试了一个使用cy.request()但看起来像新的最佳实践,该auth0-spa-js包现在在请求 URL 中需要一个随机状态字符串(我没有,它是从loginWithRedirect函数生成的)。所以我不能调用 Auth0 的登录 API

尝试 2:我设置"chromeWebSecurity": false,我单击登录按钮 -> 我的网站被重定向到 Auth0 页面,URL 正确加载但 Auth0 拒绝auth0 url在框架中显示“”,因为祖先违反了以下内容安全策略指令:“框架-祖先‘无’”。

对于这种情况,各位大侠有什么解决办法吗?

标签: auth0cypress

解决方案


目前,这是我的解决方法。

  1. 在赛普拉斯配置中禁用 chrome 安全性。
  2. 通过 auth0 页面登录(我们将重定向到登录页面并注销,因为我无法在新的 auth0 包中生成随机状态:auth0-spa-js)

注意:如果您不是 auth0 中的自定义登录页面,请使用 Universal Login 中的经典页面。我发现 Auth0 登录页面的新 UI 有很多安全性增强,阻止我们在 iframe 中渲染 auth0。(如下图)

Auth0 设置

然后,转到 Auth0 -> Tenant Setting -> Advanced -> Enable Clickjacking Protection 以允许在 iframe 中加载 auth0。

启用点击劫持

好的,我为使它工作所做的所有步骤。希望这对你有帮助


推荐阅读