使用 Google 重定向的 Firebase 身份验证,重定向到我的登录页面

Ayz*_*Pat 6 google-authentication angularjs firebase firebase-authentication

 firebase.auth().signInWithRedirect(provider);

        firebase.auth().getRedirectResult().then(function (result) {
            if (result.credential) {
                // This gives you a Google Access Token.
                var token = result.credential.accessToken;

            }
            var user = result.user;

        }).catch(function (error) {
            // Handle Errors here.
            console.log(error)
            // ...

        });



   // Start a sign in process for an unauthenticated user.

    firebase.auth().onAuthStateChanged(user => {

        if (user) {

         $state.go('home');

        }
    })
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 Google 登录,但它总是将我重定向回我的登录页面,然后在一段时间后它重定向到主页。单击登录按钮后,它会重定向到 Google 身份验证并返回登录页面。如何避免这种情况?

boj*_*eil 1

无论身份验证状态如何,您始终都会调用signInWithRedirect。当您知道用户未登录时,您应该调用它。您可以执行以下操作:

    firebase.auth().getRedirectResult().then(function (result) {
        if (!user) {
          // User not logged in, start login.
          firebase.auth().signInWithRedirect(provider);
        } else {
          // user logged in, go to home page.
          $state.go('home');
        }
    }).catch(function (error) {
      // Handle Errors here.
      console.log(error)
      // ...
    });
Run Code Online (Sandbox Code Playgroud)

  • 自从提出这个问题以来,有什么变化吗?我在 2020 年,也遇到了同样的问题,身份验证和流程非常慢,例如“登录-->google-auth-->登录(停留几秒)-->主页” (3认同)