[英]angularjs view is loaded before resolve checks access
我正在按角度設置訪問控制系統。 到目前為止是這樣。 它執行ajax返回當前用戶的角色,然后使用訪問數組檢查該角色以查看用戶是否具有權限。 如果不是,它將重定向。
一切正常,但是仍然在重定向之前的一秒鍾內顯示視圖。
還可能需要注意,因為使用laravel處理用戶身份驗證,所以ajax請求是必需的,因此我為Angular創建了一個API來獲取有關用戶會話的信息。
var app = angular.module('application', ['ngResource']);
app.config(function($routeProvider){
$routeProvider
.when('/admin', {
controller: 'showAdmin',
templateUrl: 'admin.html',
access: ['Admin', 'Manager'],
resolve: AppCtrl.resolve
});
});
function AppCtrl ($scope, getUser, $location, $rootScope) {
}
AppCtrl.resolve = {
getUser : function($q, $http, $location, $rootScope) {
return $http({
method: 'GET',
url: '/api/getUser'
})
.success(function(data, status) {
$rootScope.user = data;
if($rootScope.access.indexOf(data.permissions[0].role_name) < 0) $location.path('/');
});
}
};
app.run(function ($rootScope, sessionFactory, $location){
$rootScope.$on('$routeChangeStart', function (event, next) {
$rootScope.access = next.access;
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.