|
Аутентификация и HTTP-заголовок
Здравствуйте.
Сейчас разбираюсь с написанием системы авторизации, прочитал множество статей и не могу понять одного момента. Для подтверждения того что пользователь уже проходил авторизацию создаётся JWT токен и отправляется в клиент. Сам же токен в дальнейшем берётся из request заголовка HTTP, и главный вопрос в том как именно токен попадает в этот заголовок? Какие то операции должны проходить на стороне клиента? Видел как некоторые используют перехват из пакета axios, но я не хотел бы загружать проект целым пакетом ради одной функции. Буду очень благодарен за помощь. |
>> главный вопрос в том как именно токен попадает в этот заголовок?
Клиент сам добавляет в заголовок. Обычно помощью специальных функций доступных у клиента. т.е. клиент специально вызывает функции которые добавляют заголовок к HTTP запросу. >> Какие то операции должны проходить на стороне клиента? Клиент должен добавить заголовок и его значение. Практически во всех видах клиента это выглядит как создать HTTP_запрос = новый HTTP_запрос(); HTTP_запрос.ДобавитьЗаголово к (ИмяЗаголовка , ЗначениеЗоголовка); HTTP_запрос.ТекстЗапроса = КакоцтаТекстЗапроса; HTTP_запрос.Отправить(); |
Цитата:
Извиняюсь за глупые вопросы, вынужденная мера так как в статьях об операциях со стороны клиента никто не рассказывал. |
В клиент серверной архитектуре подразумевается что клиент только запрашивает а все операции совершает сервер.
При запросе сервер отвечает что доступ запрещен. В протоколе http для этого предусмотрены специальные статус коды https://ru.wikipedia.org/wiki/%D0%A1...%B8%D1%8F_HTTP |
Цитата:
|
Цитата:
К примеру у меня в клиенте имеется такой код: let request = new XMLHttpRequest(); request.open('GET', document.location, false); request.setRequestHeader('Test', 'token'); request.send(null); request.getAllResponseHeaders().toLowerCase(); Как на сервере принять этот код и обработать для последующего вывода нужных страниц? |
Цитата:
На Node.js принимающая сторона имеет объект request в котором есть ключ headers. Вот в нем и содержатся все данные заголовка, так же в виде пар ключ-значение... |
Raadsert, обработка и доступ к страницам также сильно зависит от того на чем у тебя организован клиент...
Например для Реакт, Вью или Ангулар достаточно изменить нужное состояние, если клиент не авторизован. Если использовать связку Node.js + его шаблонизатор (например PUG), можно сделать редирект на страничку "вы не авторизованы"... А с нее можно попасть только на регистрацию. Т.е. фантазию можно развивать на таких делах. :D |
Цитата:
Эти токены существуют для rest api, а они без состояния, т.е. ни на сессии ни на куки не рассчитывай, с каждым запросом надо тащить нужную инфу о пользователе. Все работает примерно так: - клиент хочет обратиться к api - клиент у себя где то хранит токен доступа, да хоть в переменной какой если это SPA, или в localStorage - итак, клиент видит что токена нет - он по api обращается на страницу аутентификации, с именем и паролем, и сервер ему отдает этот токен - в этом токене будет храниться все достаточное чтобы клиенту залогиниться в api - вот и получается что достаточно ему с этим токеном в заголовке заходить, на сервере он будет залогинен |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 04:53. |
|