我按照本指南将 Firebase 身份验证集成到 Astro 网站:https://docs.astro.build/en/guides/backend/google-firebase/
身份验证在本地工作,但在 Netlify 上的部署版本中,身份验证不起作用:所有相同的请求都在本地发生,但不是处理身份验证并将用户重定向到“仪表板”页面,而是“找不到令牌” " 尽管令牌以与本地相同的方式在请求中传递,但返回了响应。
Google OAuth 登录在本地工作,但返回“Cross-Origin-Opener-Policy 策略将阻止 window.close 调用”。部署版本中浏览器控制台中出现错误。
注册在本地有效,但在部署版本中返回404。
我的项目目录的根目录中有以下 netlify.toml 文件:
# netlify.toml
[[headers]]
for = "/*"
[headers.values]
Access-Control-Allow-Origin = "*"
Access-Control-Allow-Methods = "GET, POST, PUT, DELETE, OPTIONS"
Access-Control-Allow-Headers = "Content-Type, Authorization"
Cross-Origin-Opener-Policy = "same-origin-allow-popups"
但似乎没有帮助。
我也尝试过 _headers 文件 cors header 的配置,但似乎也没有帮助。
我一直在搜索Google和Stack Overflow,但找不到解决我的问题的方法。 由于某种原因,Netlify 没有显示 Astro 网站的服务器端 console.log(),这并没有帮助。
你能帮我解决这个问题吗?
结果比我最初想象的更容易解决。 我所要做的就是将 Astro 配置设置为输出模式服务器而不是混合模式:
export default defineConfig({
output: 'server',
adapter: netlify(),
});