【发布时间】:2016-08-25 06:47:13
【问题描述】:
我的注销功能,链接到注销按钮是:
$scope.logoutUser = function() {
var ref = new Firebase("https://buzzmovieionic.firebaseio.com");
ref.unauth();
console.log(ref.getAuth);
$state.transitionTo('login');
}
当我单击注销时,它会将此打印到控制台:
function (){x("Firebase.getAuth",0,0,arguments.length);return this.k.P.we()}
我正在我的另一个控制器中检查 authData:
控制器:
.controller('SearchCtrl',
function ($scope, $http, Movie, $state, UsersRef, AuthData, $timeout) {
$scope.$on('$ionicView.enter', function () {
if (!AuthData) {
console.log("Auth data null!");
swal("Unauthorized", "You are not logged in", "error");
$state.transitionTo('login');
} else {
console.log("Auth data found: " + AuthData);
//do stuff
}
});
})
工厂:
.factory("AuthData", [
function () {
var ref = new Firebase("https://buzzmovieionic.firebaseio.com");
var data = null;
ref.onAuth(function (authData) {
if (authData) {
data = authData;
}
});
return data;
}
])
如果我注销,然后通过更改 URL 返回到链接到 SearchCtrl 的页面,它仍然说它找到了 authData。
但是,如果我在第一次打开应用程序时尝试进入搜索页面,那么在任何人登录之前,它都会给我正确的错误消息并退出登录页面。
如何确保用户退出后无法返回应用?
【问题讨论】:
-
getAuth 后缺少括号:
console.log(ref.getAuth()); -
@FrankvanPuffelen 添加了它们,现在它在注销后打印 null。为什么它会说找到了 Auth Data。
标签: javascript angularjs ionic-framework firebase firebase-authentication