我正在尝试根据角色保护我的应用程序的视图。在laravel中,解决方案只是添加中间件作为路由参数的一部分。还希望使用Angular SPA应用程序在客户端完成相同的功能。抱歉,无论如何,我认为这是两个问题。
https://laravel.com/docs/5.1/authentication#protecting-routes
任何简单的解决方案来实现这一目标?
答案 0 :(得分:0)
在Angular中,您可以在Interceptor中实现相同的逻辑。
app.factory('ApiInterceptor', function() {
return {
'request': function(config) {
//check config.url against users roles somehow
disallow = doesTheUserHaveTheCorrectRoles(config.url);
//disallow the request to the API
if(disallow){
alert('No!');
return false;
}else{
return config;
}
}
}
}
查看HTTP拦截器https://docs.angularjs.org/api/ng/service/ $ http
上的文档或者您可以使用运行块执行相同的操作,并在位置更改时执行某些操作;
app.run(function ($rootScope) {
$rootScope.$on("$locationChangeStart", function (event, next, current){
disallow = doesTheUserHaveTheCorrectRoles(next);
//disallow access to the next location
if(disallow){
alert('No!');
return false;
}else{
return config;
}
});
});