Разбор клиентского токена oauth в node js - PullRequest
1 голос
/ 04 марта 2020

У меня проблемы с преобразованием юникода с node js для моего идентификатора клиента oauth. В моем предоставленном идентификаторе клиента нет конкретной структуры, и поэтому я не хочу использовать хаки для разбора строк. Я пробовал пакеты he.decode и unidecode npm, но безуспешно.

Ввод: ‌eyJob3N0S2V5IjoiYzBjYzQyOTYtMWU0Ny0zNjA4LWFiMDAtM2E5ODllZDE3MWNmIiwiYWRkb25LZXkiOiJwcm9kdWN0aXYtZGV2LWF0bGFzpqrxYZBwIn0\\u003d

Ожидается после преобразования: ‌eyJob3N0S2V5IjoiYzBjYzQyOTYtMWU0Ny0zNjA4LWFiMDAtM2E5ODllZDE3MWNmIiwiYWRkb25LZXkiOiJwcm9kdWN0aXYtZGV2LWF0bGFzpqrxYZBwIn0\=

Мое тестирование:

>he.decode("eyJob3N0S2V5IjoiYzBjYzQyOTYtMWU0Ny0zNjA4LWFiMDAtM2E5ODllZDE3MWNmIiwiYWRkb25LZXkiOiJwcm9kdWN0aXYtZGV2LWF0bGFzc2lhbi1qaXJhLWNvbm5lY3QtYXBwIn0\\u003d")
>'eyJob3N0S2V5IjoiYzBjYzQyOTYtMWU0Ny0zNjA4LWFiMDAtM2E5ODllZDE3MWNmIiwiYWRkb25LZXkiOiJwcm9kdWN0aXYtZGV2LWF0bGFzc2lhbi1qaXJhLWNvbm5lY3QtYXBwIn0\\u003d'
>unidecode("eyJob3N0S2V5IjoiYzBjYzQyOTYtMWU0Ny0zNjA4LWFiMDAtM2E5ODllZDE3MWNmIiwiYWRkb25LZXkiOiJwcm9kdWN0aXYtZGV2LWF0bGFzc2lhbi1qaXJhLWNvbm5lY3QtYXBwIn0\\u003d")
>'eyJob3N0S2V5IjoiYzBjYzQyOTYtMWU0Ny0zNjA4LWFiMDAtM2E5ODllZDE3MWNmIiwiYWRkb25LZXkiOiJwcm9kdWN0aXYtZGV2LWF0bGFzc2lhbi1qaXJhLWNvbm5lY3QtYXBwIn0\\u003d'

Поскольку идентификатор клиента предоставляется сайтом для моего приложения, я не могу удалить этот дополнительный \.

1 Ответ

1 голос
/ 04 марта 2020

Вы можете попробовать использовать пакет unraw https://www.npmjs.com/package/unraw

Это вывод, который я получаю при использовании вывода decoudeURI против unraw

const unraw = require("unraw");

let token = "eyJob3N0S2V5IjoiYzBjYzQyOTYtMWU0Ny0zNjA4LWFiMDAtM2E5ODllZDE3MWNmIiwiYWRkb25LZXkiOiJwcm9kdWN0aXYtZGV2LWF0bGFzc2lhbi1qaXJhLWNvbm5lY3QtYXBwIn0\\u003d";
let unraw_token = unraw.unraw(token)
console.log(token)
console.log(decodeURI(token))
console.log(unraw_token)

:

> eyJob3N0S2V5IjoiYzBjYzQyOTYtMWU0Ny0zNjA4LWFiMDAtM2E5ODllZDE3MWNmIiwiYWRkb25LZXkiOiJwcm9kdWN0aXYtZGV2LWF0bGFzc2lhbi1qaXJhLWNvbm5lY3QtYXBwIn0\u003d

> eyJob3N0S2V5IjoiYzBjYzQyOTYtMWU0Ny0zNjA4LWFiMDAtM2E5ODllZDE3MWNmIiwiYWRkb25LZXkiOiJwcm9kdWN0aXYtZGV2LWF0bGFzc2lhbi1qaXJhLWNvbm5lY3QtYXBwIn0\u003d

> eyJob3N0S2V5IjoiYzBjYzQyOTYtMWU0Ny0zNjA4LWFiMDAtM2E5ODllZDE3MWNmIiwiYWRkb25LZXkiOiJwcm9kdWN0aXYtZGV2LWF0bGFzc2lhbi1qaXJhLWNvbm5lY3QtYXBwIn0=
...