我正在使用角度項目。當我登錄到應用程序時,我將從登錄服務收到的access_token保存到$ cookie中。此access_token將在2分鐘後過期。 登錄後,爲了獲得最後的功能,我必須使用$ http將此access_token發送到服務以獲取有效響應。 一旦此access_token在2分鐘後過期,我正在呼叫一個服務,該服務將重新生成access_token並再次保存$ cookie。 沒有access_token,我的其他功能將不起作用。在Angular js中調用其他ajax調用
基本上我需要檢查訪問令牌是否存在於$ cookie中,或者不在應用程序中的每個服務調用之前。如果訪問令牌不存在,那麼需要使用$ http使用另一個服務調用重新生成它,然後將其保存回cookie中,然後將其保存到功能的期望服務調用中。並且如果存在令牌,則進行期望的服務呼叫。
我的功能之一是:
mPosController.controller('offerController', ['$scope', '$route', '$cookies', '$rootScope', 'mosServiceFactory', 'ngDialog', '$modal', '$q', function ($scope, $route, $cookies, $rootScope, mosServiceFactory, ngDialog, $modal, $q) {
mosServiceFactory.viewAllOffers('page=0').then(function (data) {
//Do the desire functionality
});
}]);
我的服務宗旨是:
mPosServices.factory('mosServiceFactory', function ($http, $rootScope, $cookies,$q) {
return{
viewAllOffers: function (page) {
var allOffers = $http({
method: "get",
url: "myserviceurl?enrollmentId=" + $rootScope.enrollMentId + "&" + page + "&size=10&access_token=" + $cookies.get('access_token'),
});
return allOffers;
},
refresh_token: function() {
var refreshToken = $http({
method: "get",
url: "myserviceurl/oauth/token?grant_type=refresh_token&client_id=restapp&client_secret=restapp&refresh_token=" + $cookies.get('refresh_token'),
})
return refreshToken;
},
}
});
所以調用viewAllOffers(),我需要檢查的access_token存在於$ cookie或沒有,如果不是之前然後調用refresh_token服務。
我該如何做到這一點?
您可以嘗試使用'http http'服務中的'request'攔截器,[here](https://docs.angularjs。org/api/ng/service/$ http)是一些文檔,向下滾動到**攔截器**部分 – MiTa