मैं थोड़ी देर के लिए काम करने के लिए अपना रीफ्रेश टोकन प्राप्त करने का प्रयास कर रहा हूं, और मुझे उम्मीद है कि मैं करीब हूं। मेरा टोकन रीफ्रेश करता है और बाद में 200 कॉल को ट्रिगर करता है जो भी कॉल 401 के कारण होता है, लेकिन मेरे पेज पर मेरा डेटा रीफ्रेश नहीं होता है।रीफ्रेश टोकन रीफ्रेश के बाद डेटा रीफ्रेश कैसे करें jwt
जब एक पहुँच टोकन समाप्त हो रहा है, निम्न होता है:
401 के बाद, GetListofCompanyNames सही अद्यतन पहुँच टोकन का उपयोग कर नामों की सूची के साथ 200 देता है। हालांकि, मेरा ड्रॉपडाउन रीफ्रेश नहीं होता है।
मेरे इंटरसेप्टर:
app.factory('authInterceptorService',['$q', '$location', 'localStorageService', '$injector', function($q, $location, localStorageService, $injector) {
return {
request: function(config) {
config.headers = config.headers || {};
var authData = localStorageService.get('authorizationData');
if (authData) {
config.headers.Authorization = 'Bearer ' + authData.token;
}
return config;
},
responseError: function(rejection) {
//var promise = $q.reject(rejection);
var authService = $injector.get('authService');
if (rejection.status === 401) {
// refresh the token
authService.refreshToken().then(function() {
// retry the request
var $http = $injector.get('$http');
return $http(rejection.config);
});
}
if (rejection.status === 400) {
authService.logOut();
$location.path('/login');
}
return $q.reject(rejection);
}
};
}
]);
401 अस्वीकृति पर मेरे वापसी कथन यहाँ संदिग्ध लग रहा है, लेकिन मुझे यकीन है कि क्या इसके साथ बदलने के लिए नहीं कर रहा हूँ। इस प्रकार मेरा सवाल है: जब मैं नई कॉल करता हूं तो मैं अपने डेटा को रीफ्रेश करने के लिए अपना पृष्ठ कैसे प्राप्त कर सकता हूं?
अद्यतन:
यह मैं अतीत जब 200 रिटर्न और मैं एक लटकती ताज़ा करने के लिए प्राप्त कर सकते हैं हो जाता है, लेकिन मैं नीचे के साथ (पूर्व चयनित लटकती।) पृष्ठ पर किसी भी राज्य खो देते हैं।
authService.refreshToken().then(function() {
var $state = $injector.get('$state');
$state.reload();
});
ड्राइंग बोर्ड पर वापस जाएं!
क्या आप एक कोणीय राउटर सिस्टम का उपयोग करते हैं? –
हाँ, यूई-राउटर: https://github.com/angular-ui/ui-router – RandomUs1r
क्या आपने अपनी 'authInterceptorService' में $ राज्य सेवा इंजेक्ट करने का प्रयास किया था और 'state.reload()' का उपयोग किया था? –