Почему я должен использовать базовую аутентификацию HTTP вместо параметров имени пользователя и пароля? - PullRequest
10 голосов
/ 15 ноября 2011

У меня есть конечная точка API https://www.example.com/api/authentication, которая принимает имя пользователя и пароль в качестве входных данных и возвращает токен аутентификации.

Что касается передачи имени пользователя и пароля, у меня есть два варианта (как минимум), а именно:

  1. Базовая аутентификация HTTP (которая передает учетные данные как часть заголовков HTTP)
  2. Параметры HTTP POST

Я понимаю, что ни один из методов не обеспечивает шифрование (следовательно, используется HTTPS / SSL).Я также понимаю, почему использование HTTP GET является плохой идеей.

Есть ли реальная разница (помимо того, что базовая аутентификация кажется более идиоматичной) между этими двумя методами?

Ответы [ 2 ]

7 голосов
/ 15 ноября 2011

Разница заключается в том, что базовая аутентификация - это четко определенная схема запроса / ответа, которую понимают все браузеры, и именно сервер запускает ее, сообщая клиенту, что ему требуется (базовая) аутентификация для области.Это заставляет браузер показывать пользователю всплывающее окно для ввода имени / пароля, которые затем передаются в заголовках, как вы описали.

Во втором примере вы должны сделать все это по своему усмотрению исоздайте свою собственную форму входа для пользователя (и т. д.).

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

1 голос
/ 14 июля 2017

Реализация базовой аутентификации HTTP - самый простой метод для обеспечения контроля доступа к веб-ресурсам, поскольку для этого не требуются файлы cookie, идентификаторы сеанса или страницы входа; вместо этого при базовой аутентификации HTTP используются стандартные поля в заголовке HTTP, что устраняет необходимость в рукопожатиях.

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