我正在开发一个 Web 应用程序,该应用程序使用 Emscripten 的多线程 WASM 运行计算密集型代码,因此需要 SharedArrayBuffers。仅当我的应用程序处于跨源隔离模式时,这些才有效。为了实现这一点,我必须在我的应用程序上设置以下标头:
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
Run Code Online (Sandbox Code Playgroud)
现在,我想在我的项目中使用 Firebase - 第一步是集成 Firebase 的 Auth。现在,我正在使用它firebaseui来处理登录流程。不幸的是,这不起作用,当我在浏览器中启动登录流程时,我可以在 DevTools 中看到以下消息:
除了网络选项卡中的错误之外,我没有收到任何表明发生错误的指示(即没有未捕获的异常)。如果没有 COOP/COEP 标头,一切都会正常工作。
有没有办法可以在跨源隔离模式下使用 Firebase 的身份验证?
firebase cross-origin-embedder-policy cross-origin-opener-policy cross-origin-resource-policy
我想订阅 GraphQL 服务器。该应用程序在 NodeJS 脚本中运行(即不在网络浏览器中)。
这是我目前所做的:
const fetch = require("node-fetch").default;
const apollo = require("apollo-boost");
const ApolloClient = apollo.default;
const { gql } = require("apollo-server");
const apolloClient = new ApolloClient({
uri: "http://localhost:4000/graphql",
fetch
});
apolloClient.subscribe({
query: gql`
subscription {
startTaskRequested {
pkRobot
taskName
}
}
`,
}).subscribe({
next(x) { console.log(x) },
error(err) { console.log(`Finished with error: ${ err }`) },
complete() { console.log('Finished') }
});
Run Code Online (Sandbox Code Playgroud)
结果输出是:
{ data: { startTaskRequested: null } }
Finished
Run Code Online (Sandbox Code Playgroud)
在 GraphQL Server 上,我可以看到相应的解析器从未被调用。
如果我使用 Apollo 的 …
apollo ×1
cross-origin-embedder-policy ×1
cross-origin-resource-policy ×1
firebase ×1
graphql ×1
node.js ×1