JWT руководство здесь - https://scotch.io/tutorials/the-anatomy-of-a-json-web-token#header - говорит они бегут base64url
на этом:Ненадлежащее base64url
{
"typ": "JWT",
"alg": "HS256"
}
И они в конечном итоге с этим:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Стараюсь этот код:
var b64u = require("base64url")
var rez = b64u(JSON.stringify({
"typ": "JWT",
"alg": "HS256"
}));
var shouldbe = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
console.log(rez);
console.log(shouldbe);
console.log(rez == shouldbe);
как показано здесь, в онлайн-тестах: https://tonicdev.com/56c5484d7a4ea10d0002c623/5733af59234d9d1200d8c818
Однако они не подходят.
Кто-нибудь видит какую-либо простую проблему?
Я думаю, что их пример неправильный. Я также получаю 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9'. Обратите внимание: вам не нужен модуль base64url' для кодировки base64. Просто сделайте 'new Buffer (str) .toString ('base64') ;, где' str' - ваш стробированный JSON. – dvlsg
Интересно, спасибо @dvlsg – Noitidart
О, вы знаете, что, интересно, переключает ли 'JSON.stringify' порядок ключей' alg' и 'typ'. Я заметил, что учебник scotch.io имеет их не в алфавитном порядке. – dvlsg