Как перенаправить пользователя на другую страницу после входа в эту базу по JWT-токену? - PullRequest
0 голосов
/ 11 мая 2018

Я использую JWT-токен для аутентификации пользователей в моем ASP.NET Core Web App.

Процесс аутентификации состоит из следующих шагов:

  1. Клиент отправляет запрос ajaxна URL сервера с параметрами логин / пароль для получения токена доступа
  2. Запрос на получение сервера и отправка ответа с токеном доступа и типом токена
  3. Клиент получает ответ сервера и сохраняет токен вхранилище сеанса для использования токена для запросов позже

    Когда у клиента есть токен, он должен добавлять тип токена и токен в заголовок каждого запроса, как в следующем примере (раздел заголовков jQuery.ajax ()):

    headers: {'Authorization': tokenType + '' + token}

  4. Клиент перенаправляет пользователя со страницы входа на главную страницу.В JavaScript я могу сделать это с помощью следующего кода:

Код:

window.location.replace('[URL_TO_MAIN_PAGE_HERE]');

или

window.location.href = [URL_TO_MAIN_PAGE_HERE];

Однако у меня есть проблема, котораяЯ не могу установить заголовок для указанного выше запроса.

Как перенаправить пользователя на главную страницу после входа в систему, если я использую токен доступа для аутентификации?

Дополнительная информация:

Приложение не SPA.

1 Ответ

0 голосов
/ 11 мая 2018

После сохранения токена в сеансе / локальном хранилище браузера он будет доступен для любых дальнейших запросов «API» к серверу. Когда вы запрашиваете страницу, выполняя server.transfer / request.redirect / location.href и т. Д., Вы не можете предоставить пользовательские заголовки любого типа.

Итак, какие есть варианты.

Допустим, после входа в систему вы перенаправляете пользователя на страницу (используя любой из методов), где перечислены некоторые объекты. Страница листинга выполняет (или должна выполнять) ajax-запрос к серверу (при загрузке в сценарии заголовка) для получения данных. На этом этапе вы можете прочитать токен авторизации и включить его в запрос; который сервер может проверить.

Любые последующие запросы будут выполняться таким же образом, всякий раз, когда вы запрашиваете какой-либо ресурс, включите токен в запрос http.

Если ваш API может возвращать обработанный html, то вы можете выполнить запрос GET и передать токен аутентификации, получить html и включить его в свою страницу ...

...