firebaseui signIn成功在回调中重定向

问题描述 投票:1回答:2

使用ReactJS网络和FirebaseUI身份验证。

我正在尝试创建一个signInSuccessUrl,其中包括已登录用户的uid:/users/${userId}

我的假设是,这需要在回调中定义,但我似乎无法使其正常工作。

当前,它默认重定向到signInSuccessUrl,而不是使用回调...

非常感谢您的帮助!

const uiConfig = {

  signInFlow: 'popup',

  signInSuccessUrl: '/',

  signInOptions: [
    firebase.auth.GoogleAuthProvider.PROVIDER_ID,
    firebase.auth.FacebookAuthProvider.PROVIDER_ID,
    { provider: firebase.auth.EmailAuthProvider.PROVIDER_ID,
      requireDisplayName: true
    },
  ],

  // the area where i assume something is going wrong...
  callbacks: {
    signInSuccess: function(currentUser, credential, redirectUrl) {
      const userId = currentUser.uid;
      redirectUrl = `/users/${userId}`;
      return false
    },
  }
};
reactjs firebase firebase-authentication firebaseui
2个回答
2
投票

redirectUrl不是您的想法。如果将signInSuccessUrl查询参数的内容附加到当前页面,则将其填充。它提供了一种在登录流程结束时获取该URL的简便方法,如果您使用accountchooser.com,则很难获得该URL。

要获得所需的行为,请将代码更改为以下内容:

signInSuccess: function(currentUser, credential, redirectUrl) {
  const userId = currentUser.uid; 
  // Manually redirect.
  window.location.assign(`/users/${userId}`);
  // Do not automatically redirect.
  return false;
},

0
投票

使用AuthUI时,将URL设置为配置对象的另一种方法。

 var uiConfig = {
    signInSuccessUrl: window.location.href,
    signInOptions: [ ... ]
 }
var ui = new firebaseui.auth.AuthUI(firebase.auth());
ui.start('#firebaseui-auth-container', uiConfig);
© www.soinside.com 2019 - 2024. All rights reserved.