Giải mã JWT trong Google Apps Script
Sep 20 2020
Tôi đang cố gắng giải mã Mã thông báo web JSON bằng chức năng này:
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);
};
Điều này hoạt động tốt trong bảng điều khiển Google Chrome của tôi, nhưng khi tôi cố gắng sử dụng nó trong Google Scripts, nó thông báo "atob is not xác định". Tôi đã tìm kiếm những gì atob làm , đó là giải mã một chuỗi được mã hóa 64 bit. Nhưng khi tôi sử dụng base64Decode (String), nó tạo ra một mảng thay vì một chuỗi. Làm cách nào để tái tạo hành vi của atob? Hoặc có cách nào khác để giải mã JWT không?
Trả lời
2 JackCole Sep 20 2020 at 09:40
Tôi đã tìm ra cách giải mã JWT từ 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);
};