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保留了它在验证时获得的数据?
解决方法
你想要
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()