私はリフレッシュトークンをしばらく稼働させようとしています。私のトークンがリフレッシュされ、401を引き起こした呼び出しに続いて200回の呼び出しが発生しますが、私のページのデータは更新されません。アクセストークンの有効期限が切れるとリフレッシュトークンがリフレッシュされた後にデータをリフレッシュする方法jwt
は、次の処理が行われます
401後、GetListofCompanyNames正しい更新アクセストークンを使用して、名前のリストと200を返します。ただし、私のドロップダウンは更新されません。
マイインターセプター:401拒否の
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);
}
};
}
]);
私のreturn文は、ここでは容疑者に見えますが、私はそれを交換するかわからないんだけど。それで私の質問は:私は新しい呼び出しを行うと私のページにデータを更新することができますか?
更新:
200を返す。これは、過去の私を取得し、私はリフレッシュするドロップダウンを得ることができますが、私は以下のページ(例:選択したドロップダウン。)上の任意の状態を失います。
authService.refreshToken().then(function() {
var $state = $injector.get('$state');
$state.reload();
});
描画ボードに戻る!
anglejsルータシステムを使用していますか? –
うん、ui-router:https://github.com/angular-ui/ui-router – RandomUs1r
$ stateサービスをあなたの 'authInterceptorService'に注入して' $ state.reload() 'を使ってみましたか? –