В этом уроке мы поговорим о процессе, который лежит в основе каждого нашего взаимодействия с онлайн-сервисами. Когда вы входите в свою учетную запись в социальной сети, вы вводите свои логин и пароль. Сервер приложения затем проверяет, соответствуют ли эти данные тому, что хранится в базе данных пользователей. Если данные совпадают, то вы получаете доступ к своей учетной записи. Этот процесс называется аутентификацией.
Аутентификация — это процесс удостоверения личности пользователя в приложении. Она используется для того, чтобы убедиться, что пользователь — это именно тот, за кого он себя выдает.
Postman позволяет передавать данные для аутентификации вместе с любым запросом. Для этого нужно перейти на вкладку "Authorization" запроса. Данные могут быть включены в заголовок, тело или параметры запроса, в зависимости от того, какой тип аутентификации выбран. Если вы введете свои данные авторизации на вкладке "Authorization" запроса, Postman автоматически заполнит соответствующие части запроса для выбранного вами типа авторизации. Таким образом, вы можете просмотреть, как Postman отправит ваши данные, до того, как вы запустите запрос.
Дальше мы рассмотрим несколько наиболее часто используемых типов аутентификации и узнаем, как настроить их в Postman:
- Базовая аутентификация
- Bearer token
- Api key
Базовая аутентификация
Это самый простой вид аутентификации, использующий имя пользователя и пароль. Базовая аутентификация подразумевает отправку имени пользователя и пароля вместе с запросом. Данные передаются в заголовке Authorization в формате имя_пользователя:пароль, закодированные в формате Base64
- На вкладке "Authorization" запроса выберите Basic Auth в раскрывающемся списке Type.
- Введите имя пользователя и пароль в поля Username и Password
Чтобы разобраться, что произошло, посмотрим на HTTP запрос, который сформировал Postman:
PATCH /postman/tasks/1 HTTP/1.1
Host: http.hexlet.app
Accept: application/json
Authorization: Basic dGVzdDpxd2VydHk=
...
В заголовках запроса появился заголовок Authorization, а его значением стала закодированная в Base64 строка с вашим именем и паролем, добавленная к тексту Basic
Этот же заголовок вы можете увидеть на вкладке Headers запроса:
Эти данные конфиденциальные, поэтому Postman по умолчанию скрывает их в интерфейсе. Чтобы увидеть значение заголовка, нажмите на значок hidden
Bearer token
Этот тип токена предоставляется пользователю после успешной аутентификации. Токен обычно представляет собой строку, которую пользователь должен передавать в заголовке каждого запроса к защищенному сервису или приложению. Токен передается в заголовке Authorization с префиксом "Bearer"
- Перейдите на вкладку Authorization запроса и выберите Bearer Token в раскрывающемся списке Type
- Введите полученный токен в поле "Token"
Postman добавит значение токена с префиксом Bearer в требуемом формате в заголовок Authorization запроса следующим образом:
GET /postman/users HTTP/1.1
Host: http.hexlet.app
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJJc3N1ZXIiOiJoZXhsZXQifQ.INHpBsmpvPZ6PNWVZiOyJhTQ2MQW_6PfxTYdrPWmF8o
API key
API key — это уникальный идентификатор, который выдает сервер клиенту (например, разработчику приложения) для доступа к API. Этот ключ обычно передается как пара ключ-значение в заголовках HTTP или как параметр запроса.
- На вкладке "Authorization" запроса выберите API Key в списке Auth Type.
- Введите имя и значение ключа, а в раскрывающемся списке Add to выберите, куда добавить токен: Header или Query Params
Postman добавляет соответствующую информацию в заголовки вашего запроса или строку запроса, в зависимости от того, что вы выбрали на этапе настройки
POST /http-api/courses HTTP/1.1
Host: http.hexlet.app
Accept: application/json
X-API-KEY: tybRrq0Te4tBtQAubh9Qs9qprLyTc2kbBn4laQFPzYxtWymhMZRt5gTQ8a3aBegrgW5FZoEcmijz8micMRFUglLJDAv2QtqSZwzaWugMlyfLvnsIAWhrLS8y
...
Как посмотреть детали аутентификации
После выбора и настройки типа авторизации ваши данные появляются в соответствующих частях запроса. Например, на вкладке Headers. Чтобы посмотреть детали аутентификации, перейдите на эту вкладку. Заголовки, которые Postman добавляет автоматически, по умолчанию скрыты. Чтобы просмотреть такие заголовки, выберите hidden.
Изменить вручную заголовок аутентификации на вкладке Headers не получится. Чтобы изменить заголовок, вернитесь на вкладку Authorization и обновите конфигурацию.
В этом уроке мы изучили три основных вида аутентификации в Postman: базовую аутентификацию, аутентификацию с помощью Bearer token и аутентификацию с помощью API key. Каждый из этих видов аутентификации имеет свои особенности и преимущества и используется в зависимости от требований конкретного API. Мы рассмотрели, как настроить каждый вид аутентификации в Postman, и теперь вы можете использовать эти знания для работы с защищенными API
Самостоятельная работа
Проделайте все шаги из урока у себя на компьютере
Некоторые операции в нашем приложении, такие как создание новых постов в блоге, требуют аутентификации пользователя. Мы будем работать с Bearer токенами, которые сервер выдает клиенту после успешной аутентификации
Пройдите аутентификацию на нашем сервисе. Отправьте POST запросом учетные данные пользователя на адрес http://http.hexlet.app/postman/login. В ответе вы получите токен. Данные пользователя:
{ "email": "max@hotmail.com", "password": "password" }
Попробуйте изменить данные пользователя, проверьте, какой будет ответ
Используйте этот токен для аутентификации и создайте новый пост в блоге
Попробуйте создать новый пост без аутентификации, проверьте, какой будет ответ сервера
Дополнительные материалы
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.