vk-io icon indicating copy to clipboard operation
vk-io copied to clipboard

[API] Конфликт `token` и `access_token`

Open egorprnn opened this issue 3 years ago • 6 comments

При обмене silent_token на access_token в параметры метода передаются поля access_token и token, метод завершается ошибкой, которая говорит что метод можно использовать только с сервисным токеном, хотя мы его передаем при инициализации конструктора.

У меня так и не получилось найти где именно происходит конфликт, но при таком же запросе через axios/адресную строку все нормально.

const api = new API({
   token: process.env.SERVICE_TOKEN!
});

// Error 28
// По факту token отсюда не должен менять access_token самого класса API, здесь должна работать только прямая передача access_token
// @ts-ignore Private API
api.auth.exchangeSilentAuthTokenSchema({
   token: 'silent_token',
   uuid: 'uuid'
});

egorprnn avatar Aug 01 '22 18:08 egorprnn

Как именно выглядит запрос через axios? Возможно проблема из-за использования POST запросов по умолчанию, в браузере же идёт GET :thinking:.

negezor avatar Aug 10 '22 10:08 negezor

@negezor https://github.com/MrZillaGold/vmoji-importer/blob/master/backend/src/routes/auth/exchangeSilentAuthToken.ts#L18-L28

egorprnn avatar Aug 10 '22 11:08 egorprnn

vk-io делает POST запросы? По доке VK везде GET прописаны.

egorprnn avatar Aug 10 '22 11:08 egorprnn

https://github.com/MrZillaGold/vmoji-importer/blob/master/backend/src/routes/auth/exchangeSilentAuthToken.ts#L18-L28

Если изменить на POST, метод перестанет работать?

Проблема GET запросов заключается в том, что размер URL'а не может превышать 2048 символов. Большинство веб-серверов сразу их фильтрует. Раньше библиотека использовала GET, однако после одного issue пришлось изменить на POST, проблем с размером больше не возникало.

negezor avatar Aug 11 '22 10:08 negezor

@negezor

С POST все в порядке

egorprnn avatar Aug 13 '22 12:08 egorprnn

Тогда тем более непонятно, потому что запросы идентичные уходят.

negezor avatar Aug 13 '22 15:08 negezor