Microsoft Azure的Firebase signInWithCredentials

时间:2019-07-15 22:15:25

标签: firebase oauth firebase-authentication

通常,我会使用firebase.auth.OAuthProvider('microsoft.com')并将其传递给firebase.auth().signInWithPopup(),但就我而言,我需要先使用their library登录Microsoft 并传递凭据回到firebase。 (为什么?因为我需要他们的accessToken/refreshToken处理,而Firebase并没有处理)。

无论如何,我似乎找不到一种方法来获取Microsoft提供的凭据并将其成功传递回Firebase ...

这是为我工作的内容:

export async function msLogin() {
  const userAgent = new MSAL.UserAgentApplication({ auth: { clientId: CLIENT_ID, } });
  const auth = await userAgent.loginPopup({ scopes: ['profile'] });
  const provider = new firebase.auth.OAuthProvider('microsoft.com');
  const idToken = auth.idToken.rawIdToken;
  const credential = provider.credential(idToken);

  await firebase.auth().signInWithCredential(credential); // **** THIS FAILS
  // ... with "Invalid IdP response/credential: http://localhost?id_token=eyJ0eXAiO...0e9BeTObQ&providerId=microsoft.com"

Microsoft弹出窗口非常有用,我已经在那里成功登录并且能够发出API调用。但是我无法让Firebase接受这些凭据来登录Firebase。我已经在Firebase身份验证面板中启用了Microsoft OAuth提供程序,并且我确定CLIENT_ID匹配...

也许我在构造OAuthCredential时错了吗?

非常感谢您的帮助!

ps:这是this SO post的延续。

0 个答案:

没有答案