//測試token
var app = angular.module('myApp', ['ngRoute']);
//構(gòu)造攔截器,添加token信息 3
app.config(function($httpProvider){
//構(gòu)造攔截器
var intercepter=function($q,$rootScope,Auth){
return{
'response':function(resp){
if(resp.config.url=='/login'){
//假設(shè)API服務(wù)器返回的數(shù)據(jù)格式如下
Auth.setToken(resp.data.token);
}
return resp;
},
'responseError':function(rejection){
//錯誤處理
switch(rejection.status){
case 401:
if(rejection.config.url!=='api/login')
//如果當(dāng)前不是在登陸頁面
$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:'/'});
});
//定義頁面訪問權(quán)限1
app.constant('ACCESS_LEVELS',{
pub:1,
user:2
});
//構(gòu)造攔截器服務(wù)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){ //判斷是否有權(quán)限
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;
}
};
});
//請求數(shù)據(jù)服務(wù)
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小試
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 下面選了最近十年里,十位名人所做的畢業(yè)演講。那么多的故事與經(jīng)歷,其實(shí)只想告訴你一件事: 面對迷茫和不確定的未來,我...
- 第一組:劉聰 AngularJS彈框可拖動功能 框架內(nèi)的彈框默認(rèn)是不能拖動,在不改變框架的前提下,可以通過自定義...
- 適度的焦慮對我們有促進(jìn)作用。會激發(fā)我們解決問題的能力,但嚴(yán)重的焦慮會造成身心健康方面的影響。長期處于焦慮狀態(tài),我們...