从禁区注销而不触发安全设置

时间:2015-05-31 16:14:39

标签: firebase angularfire firebase-security firebase-authentication

我有一个需要登录和某个角色的部分("高于19")。每当我从它退出时,我都会

Error: permission_denied: Client doesn't have permission to access the desired data.

原因是我的安全设置:

".read": "root.child('users').child(auth.uid).child('data').child('role').val() > 19",

我的退出功能:

// Sign out functionality
App.controller('SignOutCtrl', function($scope, $state, Auth) {

    $scope.logout = function() {

        // Go to landing page
        $state.go('home');

        // Log user out
        Auth.$unauth();

    };
});


App.factory('Auth', ['$firebaseAuth', function($firebaseAuth) {

    var firebase = new Firebase('https://mysite.firebaseio.com/');

    return $firebaseAuth(firebase);

}]);

$ state' home'没有任何阅读限制,看起来注销实际上发生在我被重定向到主页' - $状态之前,这会触发安全限制。

我想我很难理解如何在不触发安全设置的情况下退出受限制网站的基本概念,有人可以解释一下如何正确地做到这一点吗?

1 个答案:

答案 0 :(得分:1)

我建议在加载注销页面时,而不是在离开受限制页面之前取消认证。