Разъяснение поведения заголовка авторизации - PullRequest
0 голосов
/ 19 мая 2019

Я пишу механизм аутентификации для тренировочного сайта. Мне удалось создать безопасный токен, но я хочу, чтобы он отправлялся при каждом последующем запросе после входа в систему, чтобы его можно было авторизовать.

В идеале я бы хотел установить его в качестве заголовка авторизации, но я не думаю, что заголовок будет установлен, если пользователь перейдет по URL через панель браузера.

Как заставить клиента не забывать отправлять заголовок авторизации при каждом посещении моего домена?

Кроме того, в идеале я не хотел бы отправлять токен в виде файла cookie.

TL; DR: У меня есть несколько вопросов о поведении заголовка авторизации:

  1. Нужно ли отправлять заголовок авторизации при каждом запросе или браузер делает это автоматически?

  2. Если он не автоматический, GET-запросы от пользовательского ввода на панели браузера никогда не будут аутентифицированы, так как не было никакого JavaScript-кода для присоединения заголовка. Как бы вы решили эту проблему, не используя куки? (Перенаправление страницы?)

  3. Если бы мне нужно было отправлять заголовок авторизации в каждом запросе, какое решение было бы лучшим?

PS

Я использую JavaScript без каких-либо рамок.

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Для заголовка Authorization при аутентификации Basic и Digest ответ на ваши вопросы:

«Как заставить клиента не забывать отправлять заголовок авторизации при каждом посещении моего домена?»

Клиент запоминает и отправляет заголовок авторизации автоматически, если он соответствует RFC2617 :

Клиент ДОЛЖЕН предположить, что все пути на глубине или глубине последний символический элемент в поле пути Request-URI также находятся в пределах защитного пространства, заданного значением основной области текущий вызов. Клиент МОЖЕТ превентивно отправить соответствующий заголовок авторизации с запросами ресурсов в это пространство без получения другого запроса от сервера. (2 Базовая схема аутентификации)

...

Клиент должен запомнить имя пользователя, пароль, одноразовый номер, число одноразовых номеров и непрозрачные значения, связанные с сеансом аутентификации для использования в построить заголовок авторизации в будущих запросах в этом защитное пространство. (3.3 Дайджест Операция)

«Нужно ли отправлять заголовок авторизации при каждом запросе или браузер делает это автоматически?»

Браузер сделает это автоматически.

Для Authorization заголовка в Bearer аутентификации (OAuth 2.0) я искал, но не нашел похожего описания в RFC6750

0 голосов
/ 19 мая 2019

Я постараюсь ответить на ваши вопросы.

  1. На каждый запрос необходимо отправлять заголовок авторизации, если вы хотите авторизовать пользователя. Вы можете узнать больше о Заголовке авторизации по этой ссылке

  2. Я не понимаю этого вопроса. Если вы введете, например, www.facebook.com в строке браузера, вы перейдете на домашнюю страницу Facebook. Если у пользователя нет токена, покажите страницу входа или перенаправьте на www.facebook.com/login. Если у пользователя есть токен, зайдите на домашнюю страницу и в шапке отправьте токен. Токен магазина Facebook в cookie, вы можете хранить его, например, в хранилище Locale.

  3. Какой самый лучший способ? При успешном входе в систему API выдает мне токен, который я сохраняю в локальном хранилище. Затем на каждый запрос я отправляю токен. Если токен в базе данных совпадает, я получил данные. Если токен не совпадает с токеном в базе данных, я перенаправляю на страницу входа.

Надеюсь, это ответит на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...