在 Firefox 上连接到 http://localhost:3000 时,window.crypto.subtle 未定义

问题描述 投票:0回答:1

我想再次开始开发几个月前构建的单页应用程序。

它与 Azure Cloud 集成并使用其库进行登录。

部署的实例使用 https 工作,并且在任何浏览器上都能正确运行,而我用于开发的本地实例仅适用于 google chrome,不适用于 firefox。

在阅读输出控制台时,我看到:

BrowserAuthError: pkce_not_created: The PKCE code challenge and verifier could not be generated. Detail:TypeError: window.crypto.subtle is undefined

我已经检查过代码在部署的实例上运行是否相同,并且本地版本可以在 google chrome 上运行。仅在 Firefox 上使用 http://localhost:3000 加载页面时出现此错误。

所有这些让我假设 Firefox 最近的更新决定在不使用 HTTPS 的情况下阻止 window.crypto.subtle,即使连接到本地主机也是如此。您认为这是问题所在吗?您知道如何回滚到之前允许我在本地进行测试的设置吗?

http firefox browser https window.crypto
1个回答
0
投票

答案位于 SubtleCrypto 文档的开头:

安全上下文:此功能仅在安全上下文中可用 (HTTPS),在某些或所有支持的浏览器中。

这就是为什么

window.crypto.subtle
undefined

如果您想在本地进行测试,您可以在本地生成 HTTPS 证书,或者使用 NGROK 等工具,使用 1 个命令将您的

http
服务器公开为
https
,而不是尝试回滚到某种旧版本的浏览器。

© www.soinside.com 2019 - 2024. All rights reserved.