在Typescript/Javascript中计算1.0a签名
我试图在Typescript中实现oauth的签名生成,但后来我做了一些小改动(我在方法中对URI进行了硬编码,并在测试中对其进行了更改),并没有真正注意到这一点,现在它被破坏了,原因我不知道。我在这里坐了两个小时盯着我的代码,但看在上帝的份上,我不能让它再次工作了在Typescript/Javascript中计算1.0a签名,javascript,typescript,oauth,hmacsha1,Javascript,Typescript,Oauth,Hmacsha1,我试图在Typescript中实现oauth的签名生成,但后来我做了一些小改动(我在方法中对URI进行了硬编码,并在测试中对其进行了更改),并没有真正注意到这一点,现在它被破坏了,原因我不知道。我在这里坐了两个小时盯着我的代码,但看在上帝的份上,我不能让它再次工作了 calculateSignatur(URI: string, nonce: string, timestamp: number): string{ let rawURL: string = "GET&" + enco
calculateSignatur(URI: string, nonce: string, timestamp: number): string{
let rawURL: string = "GET&" + encodeURIComponent(URI) + "&";
let parameterString: string = "exact=false" +
"&oauth_consumer_key=" + this.appToken +
"&oauth_nonce=" + nonce +
"&oauth_signature_method=" + this.oauth_signature_method +
"&oauth_timestamp=" + 1511003512399 +
"&oauth_token=" + this.accessToken +
"&oauth_version=" + this.oauth_version +
"&search=Black";
let signingString = rawURL + encodeURIComponent(parameterString);
let signingKey = encodeURIComponent(this.accessToken) + "&" + encodeURIComponent(this.accessTokenSecret);
let signatur: string = CryptoJS.HmacSHA1(signingString, signingKey).toString(CryptoJS.enc.Base64);
console.log("Signatur: " + signatur)
return signatur;
}
我现在硬编码了参数以及时间戳和nonce,以对照邮递员生成的签名检查签名。如果我复制并粘贴邮递员生成的签名到OAuth头并获得授权。所以错误一定是在签名部分。当然,在发帖5分钟后,我看到了我的错误。sginingkey需要
let signingKey = encodeURIComponent(this.appSecret) + "&" + encodeURIComponent(this.accessTokenSecret);
而不是
let signingKey = encodeURIComponent(this.accessToken) + "&" + encodeURIComponent(this.accessTokenSecret);