Firebase - Microsoft SSO returns UPN 而不是 SMTP 电子邮件地址

Firebase - Microsoft SSO returns UPN instead of the SMTP email address

我正在使用 THIS Firebase 文档来创建 SSO,它运行良好,正如预期的那样,但对我来说有一个问题,注册 returns UPN(用户主体名称) 而不是 SMTP 地址,因为 UPN 不同于 SMTP 地址。有没有办法在注册时 return SMTP 地址而不是 UPN? 从 UPN 到 SMTP 的这种更改对于这个项目非常重要,因为我需要将电子邮件发送给 运行 另一个需要 SMTP 地址的 API。有什么办法可以得到SMTP地址吗?

我解决了,只需使用 Microsoft's Graph API 并在您使用 Microsoft

登录或注册用户时传递给您的访问令牌
async authenticate() {
signInWithPopup(auth, provider)
  .then(async (result) => {
    const credential = OAuthProvider.credentialFromResult(result);
    const accessToken = credential.accessToken;
    var myHeaders = new Headers();
    myHeaders.append("Authorization", `Bearer ${accessToken}`);

    var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' };
    let response = (await (await fetch("https://graph.microsoft.com/v1.0/me", requestOptions)).json()).mail;
    console.log(response);
  })
  .catch((error) => {
    console.error(error);
  });

}

此代码段将为您提供实际的电子邮件地址,而不是 UPN。