【问题标题】:Decoding JWT in Google Apps Script在 Google Apps 脚本中解码 JWT
【发布时间】:2020-09-20 02:30:37
【问题描述】:

我正在尝试使用此函数解码 JSON Web 令牌:

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);
};

这在我的 Google Chrome 控制台中运行良好,但是当我尝试在 Google 脚本中使用它时,它显示“未定义 atob”。我looked up what atob does,正在解码一个 64 位编码的字符串。但是当我使用base64Decode(String) 时,它会生成一个数组而不是字符串。如何重现 atob 的行为?还是有另一种解码 JWT 的方法?

【问题讨论】:

标签: javascript google-apps-script google-sheets


【解决方案1】:

我发现了如何从 https://developers.google.com/apps-script/reference/script/script-app#getidentitytoken 解码 JWT

function parseJwt(token) {
    let body = token.split('.')[1];
    let decoded = Utilities.newBlob(Utilities.base64Decode(body)).getDataAsString();
    return JSON.parse(decoded);
};

【讨论】:

  • 我尝试使用此解决方案,但我没有那些“实用程序”。
  • 这是用于 Google Apps 脚本的。实用程序记录在here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 2014-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多