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。
我正在使用 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。