6
var user = null;    

this.showLoginDialogGoogle  = function(){

        var ref = new Firebase("https://googlelogin1.firebaseio.com");
        ref.authWithOAuthPopup("google", function(error, authData) {
            if (error) {
                console.log("Login Failed!", error);
            } else {
                console.log("Authenticated successfully with payload:", authData);
                user = authData;
                This.goToPage('/profile');
                $rootScope.flag=true;
                $rootScope.$digest();
            }
        });
    };

firebase google authentication でユーザーを認証しました。問題は、ページを更新すると、セッションが期限切れにauthDataなり、 null. authDataページを更新した後、認証時に取得したデータを保持するにはどうすればよいですか?

4

1 に答える 1

1

認証状態を監視する必要があります。

// Register the callback to be fired every time auth state changes
var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.onAuth(function authDataCallback(authData) {
  if (authData) {
    console.log("User " + authData.uid + " is logged in with " + authData.provider);
  } else {
    console.log("User is logged out");
  }
});

AngularFire 認証ラッパーを使用していないことに注意してください。このアプローチはユーザーを認証しますが、更新されたスコープを自分で Angular に通知する必要があります (「 」を参照$timeout())。自分でそれをしたくない場合は、特にAngularFireの認証ラッパーを見てください$onAuth()

于 2015-08-11T22:11:41.403 に答える