Аутентификация в Revolut API

Я пытаюсь следовать учебному пособию Revolut по аутентификации в их API, и я застрял при запросе многоразового токена доступа.

На данный момент мне удалось: 1. Создать открытые/закрытые ключи 2. Загрузить открытый ключ 3. Подписать jwt со сгенерированным client_id 4. Получить код авторизации

Но я заблокирован при использовании вышеизложенного для запроса многоразового токена доступа.

Согласно этой странице, я должен для создания запроса POST на https://b2b.revolut.com/api/1.0/auth/token со следующим телом:

{
    "grant_type": "authorization_code",
    "client_id": my_client_id,
    "code": my_authorisation_code,
    "client_assertion_type": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
    "client_assertion": my_jwt
}

Что я сделал в Insomnia, но я продолжаю получать эту ошибку:

{
  "error": "invalid_client",
  "error_description": "client_id is missing"
}

Глядя на SO для ответа, я наткнулся на этот ответ, но я все время получаю эту ошибку , даже после того, как я изменю client_id.


person Radu    schedule 19.05.2020    source источник


Ответы (1)


Оказывается, тело не должно быть в формате JSON, оно должно быть закодировано в URL-адресе, например:

grant_type=authorization_code&client_id=client_id&code=code&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&client_assertion=jwt

person Radu    schedule 20.05.2020
comment
Привет, Раду! Спасибо за этот ответ! Я только что потратил 6 часов на отладку, пока не добрался сюда. Они могли бы упомянуть эту странную деталь в документах. - person Dmitry Ogurtsov; 07.03.2021
comment
эй @DmitryOgurtsov, нет проблем, рад, что это помогло, я знаю, насколько утомительной может быть отладка. - person Radu; 09.03.2021