下面我将为您解释如何使用 angularjs Philosophy 保护访问:
1-我们假设你有一个名为verifyLogin的工厂,这个工厂用来验证用户是否连接(在这个名为isAuth的工厂函数内部)
2 -file config 包含以下代码:
$stateProvider
.state('docApp.doc_components_profiles', {
needLogin: true,
url : '/admin/page1',
views: {
'content@docApp': {
templateUrl: 'app/admin/pages/profiles.html',
controller : 'AdminController as vm'
}
}
});
在这里你看到我们写了名为needLogin的属性,我们影响到这个属性值=true,为了访问这个路径(管理页面),用户必须经过身份验证。
3 - 现在您可以编写如下代码来验证每次用户从一个导航到另一个时的路径
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams){
if(toState.needLogin){
if(verifyLogin.isAuth== false)
{
console.log("Ypou must connect before you access to this url!!");
$location.path('/login');
}
}
}