//测试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小试
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 下面选了最近十年里,十位名人所做的毕业演讲。那么多的故事与经历,其实只想告诉你一件事: 面对迷茫和不确定的未来,我...
- 第一组:刘聪 AngularJS弹框可拖动功能 框架内的弹框默认是不能拖动,在不改变框架的前提下,可以通过自定义...