Firebase signInWithRedirect 使用选项:3 代理请求

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

我正在使用 firebase/auth 包中的signInWithRedirect。从 2024 年 6 月开始,当应用程序未托管在 Firebase 上时,我们需要实现 5 个选项之一才能正常工作。我的应用程序托管在 Netlify 上。我试图使用 选项 3 - 向 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/*" };

我还使用更改的 authDomain 更新了我的 firebase 配置:

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,它就可以工作。

firebase firebase-authentication google-signin netlify sign-in-with-google
1个回答
0
投票

在授权 URI 下我添加了:

  • my-netlify-app.com
  • my-netlify-app.com/__auth/
  • my-netlify-app.com/__auth/handler

对于 javascript 起源我还添加了:

  • my-netlify-app.com

这对我有用

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