当我刷新页面时,Firebase authData变为null

时间:2015-08-11 21:39:22

标签: angularjs firebasesimplelogin firebase-authentication

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身份验证对用户进行了身份验证。问题是,当我刷新页面时,我的会话过期,authData变为null。我可以做什么,以便在刷新页面后authData保留其在身份验证时获得的数据?

1 个答案:

答案 0 :(得分:1)

您想要monitor authentication state

// 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的auth包装器,特别是$onAuth()