Аутентификация в API всегда работает, посылая некоторый токен аутентификации в заголовок запроса.Т.е. даже при использовании отдельного подхода /auth
для входа в систему вы должны вернуть пользователю некоторый токен, возможно, файл cookie, который необходимо будет отправлять вместе с каждым запросом.
HTTP уже предоставляет выделенный заголовок для этой цели: Authorization
.
Самым базовым HTTP-авторизацией является HTTP-аутентификация с базовым доступом :
Authorization : Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Дайджест-аутентификация - еще одна, более безопасная схема.Однако вы можете использовать это поле заголовка для любой формы аутентификации, которую вы хотите, даже для своей собственной реализованной аутентификации.
Authorization : MyCustomAuthentication foo:bar:n293f82jn398n9r
В этом поле вы можете отправить вышеупомянутый маркер входа.Или вы можете использовать схему подписания запроса, в которой определенные поля запроса хэшируются вместе с паролем пользователя, в основном отправляя пароль без отправки пароля (аналогично дайджест-аутентификации, но вы можете использовать что-то лучше, чем md5
).Это уничтожает отдельный шаг входа в систему. AWS использует этот метод .
Для API в целом, используйте HTTP коды состояния , чтобы указать, что происходит.