Javascript 基于身份验证的Firebase允许访问视图

Javascript 基于身份验证的Firebase允许访问视图,javascript,angularjs,firebase,angular-ui-router,firebase-authentication,Javascript,Angularjs,Firebase,Angular Ui Router,Firebase Authentication,我已经设置了Google Firebase电子邮件和密码验证。我试图拒绝访问除登录/注册/忘记通行证路线以外的其他路线如何将路由限制为仅限经过身份验证的用户? 在本例中,我希望仅对登录用户限制对app.dashboard的访问。我的config.router.js设置如下: 'use strict'; app.config(['$stateProvider', '$urlRouterProvider', '$controllerProvider', '$compileProvider', '$

我已经设置了Google Firebase电子邮件和密码验证。我试图拒绝访问除登录/注册/忘记通行证路线以外的其他路线如何将路由限制为仅限经过身份验证的用户?

在本例中,我希望仅对登录用户限制对
app.dashboard
的访问。我的
config.router.js
设置如下:

'use strict';

app.config(['$stateProvider', '$urlRouterProvider', '$controllerProvider', '$compileProvider', '$filterProvider', '$provide', '$ocLazyLoadProvider', 'JS_REQUIRES',
function ($stateProvider, $urlRouterProvider, $controllerProvider, $compileProvider, $filterProvider, $provide, $ocLazyLoadProvider, jsRequires) {

    app.controller = $controllerProvider.register;
    app.directive = $compileProvider.directive;
    app.filter = $filterProvider.register;
    app.factory = $provide.factory;
    app.service = $provide.service;
    app.constant = $provide.constant;
    app.value = $provide.value;

    // LAZY MODULES

    $ocLazyLoadProvider.config({
        debug: false,
        events: true,
        modules: jsRequires.modules
    });

    // APPLICATION ROUTES
    // -----------------------------------

    $urlRouterProvider.otherwise('/login/signin');
    // Set up the states
    $stateProvider.state('app', {
        url: "/app",
        templateUrl: "assets/views/app.html",
        resolve: loadSequence('modernizr', 'moment', 'angularMoment', 'uiSwitch', 'perfect-scrollbar-plugin', 'toaster', 'ngAside', 'vAccordion', 'sweet-alert', 'chartjs', 'tc.chartjs', 'oitozero.ngSweetAlert', 'chatCtrl'),
        abstract: true
    }).state('app.dashboard', {
        url: "/dashboard",
        templateUrl: "assets/views/dashboard.html",
        resolve: loadSequence('jquery-sparkline', 'dashboardCtrl'),
        title: 'Dashboard',
        ncyBreadcrumb: {
            label: 'Dashboard'
        }
    })
    // Login routes

    .state('login', {
        url: '/login',
        template: '<div ui-view class="fade-in-right-big smooth"></div>',
        abstract: true
    }).state('login.signin', {
        url: '/signin',
        templateUrl: "assets/views/login_login.html",
        resolve: loadSequence('loginCtrl')

    });
    function loadSequence() {
        var _args = arguments;
        return {
            deps: ['$ocLazyLoad', '$q',
            function ($ocLL, $q) {
                var promise = $q.when(1);
                for (var i = 0, len = _args.length; i < len; i++) {
                    promise = promiseThen(_args[i]);
                }
                return promise;

                function promiseThen(_arg) {
                    if (typeof _arg == 'function')
                        return promise.then(_arg);
                    else
                        return promise.then(function () {
                            var nowLoad = requiredData(_arg);
                            if (!nowLoad)
                                return $.error('Route resolve: Bad resource name [' + _arg + ']');
                            return $ocLL.load(nowLoad);
                        });
                }

                function requiredData(name) {
                    if (jsRequires.modules)
                        for (var m in jsRequires.modules)
                            if (jsRequires.modules[m].name && jsRequires.modules[m].name === name)
                                return jsRequires.modules[m];
                    return jsRequires.scripts && jsRequires.scripts[name];
                }
            }]
        };
    }
}]);
“严格使用”;
app.config(['$stateProvider'、'$urlRouterProvider'、'$controllerProvider'、'$compileProvider'、'$filterProvider'、'$provider'、'$ocLazyLoadProvider'、'JS_REQUIRES',
函数($stateProvider、$urlRouterProvider、$controllerProvider、$compileProvider、$filterProvider、$Provider、$ocLazyLoadProvider、jsRequires){
app.controller=$controllerProvider.register;
app.directive=$compileProvider.directive;
app.filter=$filterProvider.register;
app.factory=$provide.factory;
app.service=$provide.service;
app.constant=$provide.constant;
app.value=$provide.value;
//惰性模块
$ocLazyLoadProvider.config({
调试:错误,
事件:没错,
模块:jsRequires.modules
});
//申请途径
// -----------------------------------
$urlRouterProvider。否则('/login/signin');
//建立国家
$stateProvider.state('app'{
url:“/app”,
templateUrl:“资产/视图/app.html”,
解决方法:loadSequence('Modernizer'、'moment'、'angularMoment'、'uiSwitch'、'perfect scrollbar plugin'、'toaster'、'ngAside'、'vAccordion'、'sweet alert'、'chartjs'、'tc.chartjs'、'oitozero.ngSweetAlert'、',
摘要:没错
}).state('app.dashboard'{
url:“/dashboard”,
templateUrl:“资产/视图/仪表板.html”,
解析:loadSequence('jquery-sparkline','dashboardCtrl'),
标题:“仪表板”,
ncybreadcrump:{
标签:“仪表板”
}
})
//登录路径
.state('登录'{
url:“/login”,
模板:“”,
摘要:没错
}).state('login.sign'{
url:“/sign”,
templateUrl:“资产/视图/登录\ u login.html”,
解析:loadSequence('loginCtrl')
});
函数loadSequence(){
var_args=参数;
返回{
部门:['$ocLazyLoad','$q',
函数($ocLL,$q){
风险值承诺=$q.when(1);
对于(变量i=0,len=_args.length;i