gpt4 book ai didi

javascript - Firebase 与 Microsoft 的身份验证给出了空用户对象

转载 作者:行者123 更新时间:2023-12-02 22:54:39 26 4
gpt4 key购买 nike

我正在使用 Google Firebase 实现网络用户登录。我在 Google 和 Facebook 上使用了此功能(我正在获取填充的 user 对象),但对于 Microsoft 登录,我在 user 中获取 null > 即使在登录屏幕上授权后仍反对。

我的代码:

import { initializeApp } from "https://www.gstatic.com/firebasejs/9.17.2/firebase-app.js";
import {
getAuth,
signInWithRedirect,
getRedirectResult,
signOut,
GoogleAuthProvider,
FacebookAuthProvider,
OAuthProvider, // microsoft
onAuthStateChanged
} from "https://www.gstatic.com/firebasejs/9.17.2/firebase-auth.js";

const firebaseConfig = { /* my settings */ };
const firebase = initializeApp(firebaseConfig);
const auth = getAuth(firebase);

document.querySelector('.login-with button.microsoft').addEventListener('click', microsoftSignIn, false);

function microsoftSignIn() {
const provider = new OAuthProvider('microsoft.com');
signInWithRedirect(auth, provider);
}

onAuthStateChanged(auth, user => {
if (user) {
console.log("user is logged in", user);
} else {
console.log("user is not logged in");
}
});

在 Azure AD 中,我已将重定向 URI 设置为 https://my-app.firebaseapp.com/__/auth/handler 。我还添加了本地主机,尽管我怀疑这是没有必要的:

azure ad authentication screen

我授予它登录用户的权限:

azure api permissions

我已将客户端 ID 和 key 复制回 Firebase 身份验证。

当我测试登录时,我得到以下信息:

microsoft my-app auth screen

然后,在我接受后,我将被重定向回我的网站,但 user 对象为 null。如何获取已填充的 user 对象?另请注意,即使使用 ngrok 在 https URL 上托管我的网站,结果也是相同的。

最佳答案

我在一月份就经历过这个。

您必须验证自己作为发布者的身份。

如图2所示:

Starting November 9th, 2020 end users will no longer be able to grantconsent to newly registered multitenant apps without verifiedpublishers.

这意味着如果您的 Microsoft AD“应用程序”可用于 Multi-Tenancy ,您将需要完成注册。

只有在构建单个租户应用程序时,您才能未经验证。

另请注意,如果您使用的 Microsoft 帐户是 Active Directory 的一部分(例如学校或工作帐户),则 AD 管理员必须首先注册并同意应用程序连接到 AD,在其他用户同意之前。

因此,如果您要在应用中测试登录流程,最好使用个人 Microsoft 帐户或属于您拥有管理员权限的 Active Directory 一部分的帐户。

关于javascript - Firebase 与 Microsoft 的身份验证给出了空用户对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75776086/

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