gpt4 book ai didi

与 Microsoft 进行 Firebase 身份验证。错误 "Proof Key for Code Exchange is required for cross-origin authorization code redemption"

转载 作者:行者123 更新时间:2023-12-02 07:16:24 36 4
gpt4 key购买 nike

我正在开发 TypeScript React 应用程序,并使用 Firebase 身份验证进行用户登录。我已将 Microsoft 设置为 OAuth 提供商,但在登录过程中遇到问题。

Sorry, but we’re having trouble signing you in.
AADSTS9002325: Proof Key for Code Exchange is required for cross-origin authorization code redemption.

enter image description here

const handleMicrosoftLogin = (
e: React.MouseEvent<HTMLButtonElement>,
): void => {
e.preventDefault();
const provider = new OAuthProvider('microsoft.com');
signInWithPopup(auth, provider)
.then((result: UserCredential | null) => {
if (result != null) {
// Get the OAuth access token and ID Token
const credential = OAuthProvider.credentialFromResult(result);
if (credential != null) {
const accessToken = credential.accessToken;
const idToken = credential.idToken;
console.log(accessToken, idToken);
}
}
})
.catch((error: FirebaseError) => {
// handle errors here
console.log(error);
});
};

我了解此错误与 OAuth 2.0 中的 PKCE(代码交换证明 key )流程相关,但我的理解是 Firebase 应该为我处理此问题。

我已检查我的 Azure Active Directory 应用程序注册,配置似乎正确:

  • 重定向 URI 设置为 https://.firebaseapp.com/__/auth/handler。授权域也会添加到 Firebase 身份验证设置中。
  • “访问 token ”和“ID token ”均在“隐式授权和混合流”下启用
  • 在“支持的帐户类型”下选择正确的帐户类型(任何组织目录中的帐户)。
  • 应用 ID 和应用 key 已添加到 Firebase 身份验证登录方法的提供商设置中。

我使用的是最新版本的 Firebase SDK。我希望将我的应用程序保留为 SPA,并且不想将我的平台配置从 SPA 更改为 Web(除非我误解了文档)。我还希望避免添加辅助函数和修改发送用户进行身份验证的 URL。

关于可能导致此错误的原因以及如何解决它有什么想法吗?任何帮助将不胜感激。

我已经检查了以下相关问题,但似乎都没有提供问题的正确解决方案或解释:

更新 1

对于 Auth0 ( https://community.auth0.com/t/proof-key-for-code-exchange-is-required-for-cross-origin-authorization-code-redemption/44529/12 ),我发现了类似的问题,其中解决方案是将平台添加为 Web,而不是 Azure 平台配置中的单页应用程序,这对我来说没有任何意义。

enter image description here

最佳答案

看起来像Firebase does not support PKCE 。要继续,您必须通过不注册 SPA 回复 URL 来跳过 PKCE,并像您已经完成的那样启用隐式流。

关于与 Microsoft 进行 Firebase 身份验证。错误 "Proof Key for Code Exchange is required for cross-origin authorization code redemption",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76727538/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com