Страница авторизации
Позволяет получить авторизационный код
Запрос
Потребитель направляет браузер пользователя на 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
Обратный вызов
Сервер авторизации выполняет следующие действия:
- Проверяет запрос.
- Аутентифицирует пользователя.
- Запрашивает согласие пользователя на доступ к указанным областям действия.
- Выписывает авторизационный код.
- Выполняет обратный вызов.
Обратный вызов выполняется с помощью перенаправления браузера на 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