Если API является бэкэндом для ваших SPA, самый простой способ - использовать поток кода аутентификации с вашим бэкэндом в качестве клиента OAuth2. Бэкэнд инициирует запрос авторизации, получает код авторизации, обменивает его на токены. Затем сервер может создать сеанс со всей доступной информацией об аутентификации и авторизации. SPA получит повара ie, идентифицирующего сеанс. Существует хороший документ OAuth 2.0 для приложений на основе браузера , в котором описываются лучшие практики.
Если вам нужен бэкэнд без сохранения состояния, вы можете использовать поток кода аутентификации в ваших SPA. Вы просто используете PKCE вместо секрета клиента. Затем вы можете использовать токен доступа в качестве авторизации для вашего API. Обновление токена доступа может быть выполнено либо с помощью токенов refre sh, либо с помощью запроса авторизации с &prompt=none
. Для получения дополнительной информации см. эту статью .
Если вы создадите собственную конечную точку /login
, принимающую учетные данные пользователя и проверяющую их на своем сервере OAuth2, вы потеряете некоторые преимущества - ваши приложения (SPA и серверная часть) будет работать с конфиденциальными данными (учетными данными), что может быть проблемой безопасности. И вы не сможете использовать функцию единого входа (SSO) сервера OAuth2.