//测试token
var app = angular.module('myApp', ['ngRoute']);
//构造拦截器,添加token信息 3
app.config(function($httpProvider){
//构造拦截器
var intercepter=function($q,$rootScope,Auth){
return{
'response':function(resp){
if(resp.config.url=='/login'){
//假设API服务器返回的数据格式如下
Auth.setToken(resp.data.token);
}
return resp;
},
'responseError':function(rejection){
//错误处理
switch(rejection.status){
case 401:
if(rejection.config.url!=='api/login')
//如果当前不是在登陆页面
$rootScope.$broadcast('auth:loginRequired'); break;
case 403:
$rootScope.$broadcast('auth:forbidden'); break;
case 404:
$rootScope.$broadcast('page:notFound'); break;
case 500:
$rootScope.$broadcast('server:error'); break;
}
}
}//return
};//intercepter
$httpProvider.interceptors.push(intercepter);
});
app.config(function($routeProvider,ACCESS_LEVELS){
$routeProvider.when('/', {templateUrl: 'HTTPBasic.html', reloadOnSearch: false});
$routeProvider.when('/count', {templateUrl: 'count.html', reloadOnSearch: false});
$routeProvider.otherwise({ redirectTo:'/'});
});
//定义页面访问权限1
app.constant('ACCESS_LEVELS',{
pub:1,
user:2
});
//构造拦截器服务2
app.factory('Auth',function($cookieStore,ACCESS_LEVELS){
var _user=$cookieStore.get('user');
var setUser=function(user){
if(!user.role||user.role<0){
user.role=ACCESS_LEVELS.pub;
}
_user=user;
$cookieStore.put('user',_user);
}
return {
isAuthorized:function(lvl){ //判断是否有权限
return _user.role>=lvl;
},
setUser: setUser,
isLoggedIn: function(){
return _user?true: false;
},
getUser: function(){
return _user;
},
getId: function(){
return _user? _user._id:null;
},
getToken: function(){
return _user? _user.token:'';
},
setToken: function(token){ //自己新加入
_user._token=token;
},
logout:function(){
$cookieStore.remove('user');
_user=null;
}
};
});
//请求数据服务
app.service('Backend',function($http,$q,$rootScope,Auth){
this.getDashboardData=function(){
$http({
method:'GET',
url:'http://localhost:8080/bbwbg/userController/list',
params:{ taken:Auth.getToken(),name:'fd'}
}).success(function(data){
return data.data;
}).catch(function(reason){
$q.reject(reason);
});
};
});
app.controller('MainController',function($scope,Backend){
$scope.name="heha";
Backend.getDashboardData();
});
angularjs小试
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 下面选了最近十年里,十位名人所做的毕业演讲。那么多的故事与经历,其实只想告诉你一件事: 面对迷茫和不确定的未来,我...
- 第一组:刘聪 AngularJS弹框可拖动功能 框架内的弹框默认是不能拖动,在不改变框架的前提下,可以通过自定义...