Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
在Typescript/Javascript中计算1.0a签名_Javascript_Typescript_Oauth_Hmacsha1 - Fatal编程技术网

在Typescript/Javascript中计算1.0a签名

在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

我试图在Typescript中实现oauth的签名生成,但后来我做了一些小改动(我在方法中对URI进行了硬编码,并在测试中对其进行了更改),并没有真正注意到这一点,现在它被破坏了,原因我不知道。我在这里坐了两个小时盯着我的代码,但看在上帝的份上,我不能让它再次工作了

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);