Firebase signInWithRedirect代理方案(Netlify)遇redirect_uri_mismatch错误求助
Firebase Auth signInWithRedirect 重定向URI不匹配问题(Netlify代理方案)
我正在使用firebase/auth包的signInWithRedirect接口,自2024年6月起,非Firebase托管的应用必须从5种方案中选择其一才能正常使用该接口。我的应用托管在Netlify上,采用了代理请求至firebaseapp.com的方案。
我用Netlify边缘函数实现了代理:
export default async (request, context) => { const url = new URL(request.url); if (url.pathname.startsWith("/__/auth/")) { const newUrl = new URL(request.url); newUrl.hostname = "my-firebase-app.firebaseapp.com"; const proxyRequest = new Request(newUrl.toString(), request); return fetch(proxyRequest); } return context.next(); }; export const config = { path: "/__/auth/*" };
同时更新了Firebase配置,修改了authDomain:
authDomain: "my-netlify-app.com"
调用signInWithRedirect时,会被重定向到谷歌页面,但出现以下错误:
无法登录,因为此应用发送了无效请求。你可以稍后重试,或联系开发者了解此问题。了解有关此错误的更多信息 如果你是此应用的开发者,请查看错误详情。错误 400: redirect_uri_mismatch
我已查阅相关文档,也在Google控制台的凭据页面确认添加了:
- OAuth 2.0客户端ID
- 授权JavaScript来源:
https://my-netlify-app.com - 授权重定向URI:
https://my-netlify-app.com/__/auth/handler
但仍出现redirect_uri_mismatch错误,请求详情显示:redirect_uri=https://my-netlify-app.com/__/auth/handler flowName=GeneralOAuthFlow
目前我打算改用signInWithPopup,但并不喜欢这个方案,不过不修改authDomain时它可以正常工作。
内容的提问来源于stack exchange,提问作者fxdxpz
相关产品推荐
相关产品推荐

