API - это бэкэнд-сервис, обычно вызываемый через интерфейсное приложение или другой бэкэнд-сервис.API не должен предполагать, что вызывающий абонент - это человек, использующий внешний интерфейс, и не должен предполагать, что внешний интерфейс - это веб-приложение, это может быть мобильное приложение, приложение для просмотра часов, приложение для ТВ и т. Д. *
При этом ваш API не должен перенаправлять на страницу аутентификации пользователя.
Обычный рабочий процесс будет
- Клиенты подключаются к вашей веб-странице
- Код включенвеб-страница проверяет, аутентифицирован ли пользователь
- Когда пользователь не аутентифицирован, веб-страница перенаправляется в систему аутентификации.
- После аутентификации система аутентификации перенаправляет обратно на вашу веб-страницу
- Веб-страница собирает токен, сгенерированный системой аутентификации
- API вызова веб-страницы, включая токен в заголовке / строке запроса.
Веб-приложение можно заменить здесь мобильным приложением или другим типом интерфейса.конец.
Проверьте пример здесь.https://github.com/dabit3/stockholm-loft-react-native
Это приложение React, использующее Amplify, демонстрирующее, как само приложение управляет перенаправлением на страницу аутентификации и как оно передает маркер аутентификации в API.В примере используется API-интерфейс GraphQL, но вы можете сделать нечто подобное с REST API.