OAuth -错误的签名

本文关键字:错误 OAuth | 更新日期: 2023-09-27 18:15:28

我正在使用https://developer.linkedin.com/oauth-test-console来确定为什么我得到401 unauthorised消息。

由于某种原因,在我的代码中生成的签名与在这个控制台上生成的签名不一样。出于测试目的,代码中的noncetimestampbaseString与控制台中使用的值相同。但签名还是不匹配?

我使用以下代码生成签名:

HMACSHA1 hmacsha1 = new HMACSHA1();
hmacsha1.Key = Encoding.ASCII.GetBytes(string.Format("{0}&{1}", UrlEncode(), UrlEncode()));
string signature = Convert.ToBase64String(hashAlgorithm.ComputeHash(System.Text.Encoding.ASCII.GetBytes(baseString)));

UrlEncode()UrlEncode()分别是使用url编码的消费者秘密和令牌秘密。

OAuth -错误的签名

我解决了。上面的逻辑是不正确的。

我交换了令牌秘密和消费者秘密,所以它是LinkedinOAuthTokenSecret &LinkedinOAuthConsumerSecret ({1}{0})而不是相反。

这创建了正确的密钥,可以用来制作合法签名。