Javascript 正在尝试使用节点JS设置API管理REST API身份验证

Javascript 正在尝试使用节点JS设置API管理REST API身份验证,javascript,c#,node.js,azure,azure-api-management,Javascript,C#,Node.js,Azure,Azure Api Management,我的目标是使用Azure API管理API对Node.js客户端进行身份验证 在这里,我正在努力将这个C示例转换为Node.js Javascript。我已经用我自己的id和密钥测试了C示例,它似乎用API验证了200,但我的Node.js代码片段一直得到401 我觉得这可能与C示例格式化expire ex={1:o}的方式有关,expire ex={1:o}是一种 C示例 资料来源: 使用制度; 使用系统文本; 利用制度全球化; 使用System.Security.Cryptography;

我的目标是使用Azure API管理API对Node.js客户端进行身份验证

在这里,我正在努力将这个C示例转换为Node.js Javascript。我已经用我自己的id和密钥测试了C示例,它似乎用API验证了200,但我的Node.js代码片段一直得到401

我觉得这可能与C示例格式化expire ex={1:o}的方式有关,expire ex={1:o}是一种

C示例 资料来源:

使用制度; 使用系统文本; 利用制度全球化; 使用System.Security.Cryptography; 公共课程 { 公共静态真空总管 { 变量id=12345678abcdefgh; var键=1234abcd5678asdf==; var到期=DateTime.UtcNow.AddDays10; 使用var编码器=新的HMACSHA512Encoding.UTF8.GetByteskey { var dataToSign=id+\n+expiry.ToStringO,CultureInfo.InvariantCulture; var hash=encoder.ComputeHashEncoding.UTF8.GetBytesdataToSign; var signature=Convert.ToBase64Stringhash; var encodedToken=string.FormatSharedAccessSignature uid={0}&ex={1:o}&sn={2},id,到期日,签名; Console.WriteLineCodedToken; } } } My Node.js代码段 var util=require'util' var crypto=需要“加密” var generateAccessCode=函数{ 变量id=1234asdf1234asdf; var key=1234asdf1234ghjk; 常数accessCodeExpireDays=10; const formatString='SharedAccessSignature uid=%s&ex=%s&sn=%s' 常量dataToSignString='%s\n%s'; //创建到期字符串 var today=新日期; var到期=新日期; expire.setDatetoday.getDate+accessCodeExpireDays; expiry=expiry.toISOString; //创建散列 var dataToSign=util.formatdataToSignString,id,到期日 const hash=crypto.createHmac'sha512',密钥 .UpdateStatosign .摘要'base64'; var encodedToken=util.formatString、id、到期日、哈希; console.logencodedToken } 生成访问码
您可能需要通过以下方式设置到期日的格式:


就这样,谢谢亚伦!
//create expiry string
var today = new Date();
var expiry = new Date();
expiry.setDate(today.getDate() + accessCodeExpireDays);
expiry = moment(expiry).format('YYYY-MM-DD[T]HH:mm:ss.SSSSSSS[Z]')