К содержимому
Инвойсбокс

Экран согласия

Пользователя отправляют на authorization_endpoint из метаданных.

ПараметрЧто означает
response_type *code
client_id *идентификатор приложения
redirect_uri *адрес возврата; должен совпадать с зарегистрированным
state *случайная строка; вернётся без изменений, по ней сверяется подлинность возврата
code_challenge *SHA-256 от code_verifier в base64url
code_challenge_method *S256
scopeзапрашиваемые права через пробел; без него запрашиваются все права приложения
resourceадрес сервиса, для которого нужен токен (см. ниже)
https://id.invoicebox.ru/oauth/authorize?response_type=code&client_id=my-service&redirect_uri=https%3A%2F%2Fmy-service.ru%2Fauth%2Fcallback%2F&state=8f2c…&code_challenge=k7Yb…&code_challenge_method=S256&scope=merchant-read

Пользователь входит (или уже вошёл) и видит, какое приложение просит доступ и какие права. Дальше одно из двух:

  • нажал «Разрешить» — возврат на redirect_uri с параметрами code и state;
  • нажал «Отклонить» — возврат на redirect_uri с error=access_denied и тем же state.

Отказ приходит именно ответом, а не молчанием: приложение должно узнать, что доступ не дали, а не ждать код, который никогда не придёт.

Если параметры запроса неверны — незнакомый client_id, чужой адрес возврата, права, которых у приложения нет, — пользователь остаётся на нашей странице с объяснением. По непроверенному адресу возврата мы никого не отправляем: именно так работает открытый редирект.

Читайте также

Страница помогла?