cypress - 使用 Cypress 在 Chrome 无头模式下忽略 X-Frame-Options
问题描述
我正在构建一个赛普拉斯测试,该测试使用@msal-browser PKCE 身份验证登录到我的应用程序,该身份验证针对位于不同域中的 Azure B2C 租户,这对我造成了 x-frame 问题:
Refused to display 'https://somecrossdomainurl/oauth' in a frame because it set 'X-Frame-Options' to 'deny'.
我意识到跨域测试违反了赛普拉斯登录最佳实践——但是,我的身份验证方法使用的是 PKCE,而不是隐式授权流程,因此如果没有浏览器交互,我就无法获得令牌。此外,轻微的片状风险是我愿意为实际登录到我的应用程序的实时集成测试做出的权衡。
我通过安装第三方扩展程序来使用建议的解决方法来忽略 X-Frame 标头,并且效果很好。当我尝试在--headless
模式下运行它时,问题就来了。Chrome不允许以无头模式安装扩展程序,因此这种解决方法对于 CI 环境来说确实是站不住脚的。
除了存根验证之外,我不知道如何处理这个问题。鉴于隐式流的已知漏洞和 PKCE 的兴起,它认为应该有一个选项可以在赛普拉斯内部处理这个问题。我对赛普拉斯比较陌生,所以我肯定错过了一些简单的东西吗?
解决方案
推荐阅读
- tensorflow - keras:zca 美白被 train_datagen.fit() 卡住了
- python - 更改预训练模型的批量大小
- excel - 第二次运行时出现运行时错误“远程服务器机器”
- c# - 如何使用此功能的描述搜索功能?
- reinforcement-learning - DOUBLE DQN 没有任何意义
- python - 使用二维数组构建耦合地图格
- html - 如何让一系列 div 彼此相邻而不是彼此重叠显示?
- python - 使用 Scipy Curve_Fit 进行预测/外推
- ios - 无法删除 tableView 中的行
- typescript - 将 typescript 错误连接到其关联的编译器选项 (tsconfig.json)