Авторизация токена - браузер выдает форму авторизации

0

Я работаю над реализацией маркера в приложении 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.

  • 0
    Если вы не можете определить, когда срок действия токена истек, не отправив ajax-запрос, скорее всего, вы ничего не можете сделать из клиентской программы, чтобы это исправить.
Теги:
asp.net-web-api2
token

1 ответ

0

Сделайте запрос 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');
        }
    });
});
  • 0
    Я не могу перенаправить. Браузер показывает свою форму, прежде чем мой код получит контроль.
  • 0
    Я отредактировал мой ответ, пожалуйста, проверьте его
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню