WebMoney

Страница авторизации

Позволяет получить авторизационный код

Запрос

Потребитель направляет браузер пользователя на URI https://login.wmtransfer.com/oauth/api/v1/authorize?response_type=response_type&client_id=client_id&redirect_uri=redirect_uri&scope=scope&state=state

Название Назначение
client_id идентификатор потребителя
response_type запрашиваемый тип ответа, должен содержать "code"
redirect_uri URI обратного вызова, если redirect_uri не задан, то используется значение из настроек потребителя
scope область действия (разрешения).
state непрозрачное значение, используемое потребителем для поддержания состояние между запросом и обратным вызовом

Примечание

response_type

— полученный код необходимо обменять на маркер доступа с помощью Token API.

state

— параметр должен быть использован для предотвращения межсайтовой подделки запросов (Сross Site Request Forgery, CSRF), как описано в разделе CSRF.

Пример запроса

GET /oauth/api/v1/authorize?response_type=code&client_id=799CnXicG2WfrFvj&redirect_uri=https%3A%2F%2Fconsumer%2Eexample%2Ecom%2Fcb&scope=scope1&state=bar HTTP/1.1
Host: login.wmtransfer.com

Обратный вызов

Сервер авторизации выполняет следующие действия:

  1. Проверяет запрос.
  2. Аутентифицирует пользователя.
  3. Запрашивает согласие пользователя на доступ к указанным областям действия.
  4. Выписывает авторизационный код.
  5. Выполняет обратный вызов.

Обратный вызов выполняется с помощью перенаправления браузера на URI обратного вызова. При успехе передаются следующие параметры:

Название Назначение
code авторизационный код
scope область действия, на которую согласился пользователь
state значение параметра state из запроса

Если пользователь отказался от предоставления разрешения, возникла ошибка, то выполняется обратный вызов указывающий, на ошибку.

Название Назначение
error ошибка
error_description описание ошибки, необязательно
error_uri URI содержащий описание ошибки, необязательно
state значение параметра state из запроса, если было указано

Примеры обратного вызова

Успех:

HTTP/1.1 302 Found
Location: https://consumer.example.com/cb?code=joMD6VGDAUJDS86Dm9uE7gH61gGvC8Cd&scope=scope1&state=bar

Пользователь отказался от авторизации:

HTTP/1.1 302 Found
Location: https://consumer.example.com/cb?error=access_denied&state=5dbdf2c0-28dc-453c-93a6-33e4112c2600

Смотри также

  • Token API
  • RFC 6749 - развернутое описание процесса авторизации в стандарте, который был имплементирован.