Decodificando JWT no Google Apps Script
Sep 20 2020
Estou tentando decodificar um JSON Web Token usando esta função:
function parseJwt(token) {
var base64Url = token.split('.')[1];
var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
return JSON.parse(jsonPayload);
};
Isso funciona bem no meu console do Google Chrome, mas quando tento usá-lo no Google Scripts, ele diz "atob não está definido". Eu pesquisei o que o atob faz , que é decodificar uma string codificada de 64 bits. Mas quando eu uso base64Decode (String), ele produz uma matriz em vez de uma string. Como posso reproduzir o comportamento do atob? Ou existe outra maneira de decodificar um JWT?
Respostas
2 JackCole Sep 20 2020 at 09:40
Eu descobri como decodificar um JWT de https://developers.google.com/apps-script/reference/script/script-app#getidentitytoken
function parseJwt(token) {
let body = token.split('.')[1];
let decoded = Utilities.newBlob(Utilities.base64Decode(body)).getDataAsString();
return JSON.parse(decoded);
};
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?