Я застрял с генерацией JWT. Когда я запускаю приведенный ниже код, я получаю «NiQPVTQSv3OyW5mFH27_wWMbTp1wOTScYP468rHddbQ» как encodedSignature , который завершается ошибкой на сервере.
Ожидаемая закодированная подпись равна "61Wp2O45amZBgdRzWwqdnRBQC2c9Fi7KMv8RLvH1vks". (Это из рабочего кода в python).
Согласно справочнику google , два входа для Utilities.computeHmacSha256Signature () должны быть либо байтами [], byte [] или строка, строка. Разве мои входные данные не соответствуют типу?
function resecret(s) {
var bin_secret = "";
var duo = ""
var new_secret_array = [];
var j = 0;
var len=s.length;
var element = 0;
for (var i = 0; i < len; i++) {
duo = s.charAt(i) + s.charAt(i+1);
element = parseInt(duo, 16);
bin_secret = bin_secret + element;
new_secret_array[j] = element;
j++;
i++;
}
return new_secret_array;
}
function theProblem() {
var claim = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI0MjM4NmZiMGFjMTI1YjQ0MzFiMTI5ZTMzNDBhOGIxOSIsImlhdCI6MTU4ODI1MzU3NywibmJmIjoxNTg4MjUzNTc3LCJleHAiOjE1ODgyNTQxNzcsImhvc3QiOiJodHRwczovL3NvbWV3aGVyZS5zb21lSG9zdC5jb20iLCJwYXRoIjoiL3NvbWUvcGF0aCIsIm1ldGhvZCI6IkdFVCJ9";
var client_secret = "a1a2a3";
var signature = Utilities.computeHmacSha256Signature(claim, resecret(client_secret));
var encodedSignature = base64Encode(signature);
}