У меня есть эта строка в кодировке Base64: const encodedString = 'eyJ1c2VybmFtZSI6Imxha2VzYXJlIiwib2F1dGhQcm92aWRlciI6ImdpdGh1YiIsIm9hdXRoSWQiOiI3NTc4NTU5IiwiYXZhdGFyVXJsIjoiaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc1Nzg1NTk_dj0zIiwiaWF0IjoxNDg1ODAxODI3fQ';
('{"username": "lakesare", "oauthProvider": "GitHub", "oauthId": "7578559", "avatarUrl": "https://avatars.githubusercontent.com/u/7578559?v=3", "IAT": 1485801827})Декодирование base64 string с atob вызывает ошибку, хотя у него нет никаких символов, отличных от ASCII
Декодирование его в узел работает:
Buffer.from(encodedString, 'base64').toString();
Декодирование его в браузере (Не удалось выполнить «atob» в «Окно»: строка, подлежащая декодированию, неправильно закодирована.):
atob(encodedString);
ну, '_' неправильно для начала - это должен быть'/' –
@JaromandaX, yep, я видел, что' btoa' возвращает строку '/' -ed. В моем случае строка, закодированная в base64, была сгенерирована функцией 'jwt.sign()'. , если у вас есть идея о том, почему 'jwt.sign' и' btoa' кодируют строки по-разному - прокомментируйте. – lakesare