#javascript #api #oauth
#javascript #API #oauth
Вопрос:
Читая последний черновик OAuth2, я не уверен, какой поток подходит для клиента, который я разрабатываю, и подходит ли OAuth вообще. Данные, передаваемые из нашего API, не являются специфичными для пользователя; наличие учетных данных просто предоставляет пользователю доступ к нашим данным.
JS-клиент, который я создаю, будет общедоступной страницей, которая не требует от пользователя аутентификации. Вместо этого «пользователь» является самим клиентом JS. То есть для этого приложения есть специальная учетная запись для доступа к нашему API.
В настоящее время я просто добавляю Authorization
заголовок с базовыми учетными данными HTTP, что плохо по многим причинам. Самое главное, что любой мог очень легко извлечь имя пользователя и пароль.
Наиболее близкое соответствие, которое я вижу в черновике OAuth для этого сценария, — это неявное предоставление авторизации, но все равно кажется, что человек, управляющий агентом пользователя (веб-браузер), должен был бы взаимодействовать со страницей, чтобы получить токен доступа. Необходимость, скажем, нажимать кнопку, а затем возвращаться к серверу аутентификации, а затем обратно к JS-клиенту (через redirect_uri
) не подходит.
С другой стороны, не имея возможности использовать закрытый ключ (потому что это JS), я не могу представить, как клиент мог быть проверен без использования redirect_uri
.
Может кто-нибудь разъяснить мне?
Комментарии:
1. Это похоже на случай простых файлов cookie. Создайте одноразовый ключ, который вы передаете каждому клиенту, срок действия которого истекает через несколько часов (и при необходимости продлевайте, находясь на странице).
Ответ №1:
Токен доступа передается вашему redirect_uri во фрагменте URL. Вы можете получить его, проанализировав окно.Расположение.значение хэша.
С другой стороны, не имея возможности использовать закрытый ключ (потому что это JS), я не могу представить, как клиент мог быть проверен без использования redirect_uri .
Неявный тип предоставления НЕ аутентифицирует клиента. В некоторых случаях идентификатор клиента может быть проверен с помощью redirct_uri, используемого для доставки токена доступа клиенту. Он зависит от присутствия владельца ресурса (его учетных данных) и регистрации URI перенаправления. в этом потоке требуется redirect_uri. Некоторые SDK говорят, что это «необязательно», потому что у них есть конфигурация по умолчанию, которая обычно является тем же доменом, где находится служба API, или она предварительно настроена у поставщика ресурсов.