javascript - 我在“Utilities.computeHmacSha256Signature”上做错了什么?
问题描述
我坚持生成 JWT。当我运行下面的代码时,我得到“NiQPVTQSv3OyW5mFH27_wWMbTp1wOTScYP468rHddbQ”作为编码签名,服务器失败。
预期的编码签名是“ 61Wp2O45amZBgdRzWwqdnRBQC2c9Fi7KMv8RLvH1vks ”。(它来自python中的工作代码)。
根据谷歌参考, Utilities.computeHmacSha256Signature()的两个输入需要是 byte[]、byte[] 或 string、string。我的输入在类型上不匹配吗?
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);
}
解决方案
推荐阅读
- oracle - 配置在 Windows 10 上运行的 Oracle XE 日志记录,防止写入 Windows 事件日志
- python - 如何将用熊猫提取的一列excel数据中的NaN替换为0
- dask - 在 dask 分布式中具有正确资源分配的工人示例
- javascript - 如何在 React 中过滤对象数组
- c - C编程中__attributes__的解释:
- javascript - 如果属性在另一个数组中并且值为 true,则过滤对象数组
- sql - 当我可以在复合列上使用具有唯一约束的单个主键时,为什么要使用复合主键?
- sql - 如何让 IIS 使用 AppPool Identity 连接到 SQL Server 而不是 NT Authority\IUSR?
- firebase - 如何使用 Provider、Firebase 在 Flutter 中获取当前用户
- python - 如何从 config.py 修改全局变量,但在包命名空间中保留默认值?