Я работаю над реализацией маркера в приложении Angular/.Net. Моя часть - это интерфейс. Что происходит, когда пользовательский интерфейс отправляет запрос с истекшим токеном, а сервер отвечает с помощью 401, я не могу перехватить его до того, как браузер получит форму "Вход". В результате я не могу отправить запрос на обновление токена. Может кто-нибудь, пожалуйста, дайте мне представление о том, как это должно управляться? Я дам код просто не знаю, что показывать.
благодаря
Добавление кода:
var response = $http({
method: "GET",
dataType: "json",
params: params,
headers: {
'Content-Type': "application/xml; charset=utf-8",
},
url: someurl
});
response = response.then(function (data) {
return data.data;
});
response.catch(function (data) {
$q.reject(data);
});
// Return the promise to the controller
return response;
Проблема в том, что я не могу перенаправлять UI, потому что браузер бросает форму входа до того, как мой код попадает, когда сервер возвращает 401.
Сделайте запрос ajax, и если вы получите 401, то перейдите на страницу входа.
Ps для лучшего понимания предоставит ваш код, как вы реализуете запрос ajax. Какой модуль вы используете для front-end auth? Я рекомендую спутник
Добавлено: я думаю, вам нужна следующая конфигурация на угловом
var app = angular.module('App', ['satellizer'])
.config(function() {
/* your config */
}
.run(function($rootScope, $location, $auth) {
// Check auth status on each routing,
// Redirect to login page, if user is not authenticated or if token expired
$rootScope.$on('$routeChangeStart', function(event, next, current) {
if (!$auth.isAuthenticated()) {
$location.path('/auth/login');
}
});
});