Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SAS中:为Google API创建JSON Web签名_Json_Google Api_Sas_Java Web Start_Jwt - Fatal编程技术网

在SAS中:为Google API创建JSON Web签名

在SAS中:为Google API创建JSON Web签名,json,google-api,sas,java-web-start,jwt,Json,Google Api,Sas,Java Web Start,Jwt,我正在使用SAS 9.4。我想写一个JSON Web签名(“JWS”)来完成我的JSON Web令牌(“JWT”)-(我已经对标题和声明进行了编码和测试)。我想对谷歌进行API调用。我的问题是我不确定如何创建JWS。根据所有文档和教程网站,我研究了创建签名的语法is(伪代码): 和/或 var encodedString = base64UrlEncode(header) + "." + base64UrlEncode(payload); HMACSHA256(encodedString, 's

我正在使用SAS 9.4。我想写一个JSON Web签名(“JWS”)来完成我的JSON Web令牌(“JWT”)-(我已经对标题和声明进行了编码和测试)。我想对谷歌进行API调用。我的问题是我不确定如何创建JWS。根据所有文档和教程网站,我研究了创建签名的语法is(伪代码):

和/或

var encodedString = base64UrlEncode(header) + "." + base64UrlEncode(payload);
HMACSHA256(encodedString, 'secret');
等等

我一直在尝试使用SAS PROC GROOVY代码创建JWS,代码如下: …和其他地方

谷歌的doc()声明: “使用从Google开发者控制台获得的私钥,使用SHA256withRSA(也称为RSASSA-PKCS1-V1_5-Sign和SHA-256哈希函数)对输入的UTF-8表示形式({Base64url编码头}.{Base64url编码声明集})进行签名。输出将是一个字节数组。”

然而,我对使用什么密钥(或者我是否应该使用密钥)感到困惑,因为一些站点(上面的示例)只建议对编码的头+声明进行哈希运算,而其他站点则建议使用“私钥”进行哈希运算,而github页面(上面的URL)只使用“密钥”

我也对sha1和SH256感到困惑。Google文档支持sha256,但有些人在这个堆栈溢出线程中建议使用sha1:questions/18362327/使用sas为Google api地理代码创建数字签名

同样,我已使用以下方法验证了我的标头和声明SAS代码的工作情况: jwt点iokjur.github.io/jsjws/tool_jwt.html

由于SAS支持Groovy(PROC Groovy),我假设我可以使用java代码成功地编写JWT,但我还没有能够使用我上面提到的站点和其他站点上的示例在SAS代码中复制任何JWT

以前有没有人这样做过(使用SAS连接到使用JWT的Google API)

感谢您的帮助

var encodedString = base64UrlEncode(header) + "." + base64UrlEncode(payload);
HMACSHA256(encodedString, 'secret');