【发布时间】:2013-02-04 05:18:28
【问题描述】:
我已经为此工作了好几天,试图让这个身份验证与 Desk.com 的 API http://dev.desk.com/ 一起工作。我什至尝试过使用诸如https://github.com/buildmaster/oauth-mvc.net#readme 之类的框架,但我仍然收到 401 错误...我永远无法验证。
我不能再因为这不起作用..并且已经花了几天时间..这是我在这里的所有自定义代码,我一直在绞尽脑汁想弄清楚为什么 Desk.com正在拒绝我第一次尝试在这里向他们发出 API 调用。
Desk.com 说它必须是我的签名,但我一遍又一遍地检查我的签名,我觉得签名不是问题。我什至尝试使用 oauth-mvc.net 并使用他们的实用程序来创建我的签名 (https://github.com/buildmaster/oauth-mvc.net#readme),当使用该框架创建 sig 时,我仍然得到 401。所以我不能确定它是签名,在我如何形成请求时它一定是一些简单的愚蠢......我不确定。
所以这是我的代码..我一辈子都看不出有什么问题。跟着它走,就好像你在跟我调试一样。 (仅供参考,如果您看不到它,请右键单击图像并选择查看以查看完整图片)。
1_UnitTestStart.jpg 2_AboutToCreateSignature.jpg 2_AboutToCreateSignature_2.jpg 3_AboutToCreateSignatureBase.jpg 4_AboutToEncodeEachKeyAndValue.jpg 6_AboutToSortEncodedParamList.jpg 7_ParamListIsSorted.jpg 8_AboutToNormalizeTheSortedParamList.jpg 9_SortedParamListIsNowNormalized.jpg 10_ShowingMyUrlEncodeMethodHere.jpg 11_BaseSignatureStringCreated.jpg 12_SigningTheHMACSHA1.jpg 13_ConvertingToHash.jpg 14_Hashed.jpg 15_ReturnFinalSignature.jpg 16_AboutToGetAuthHeaderParamsNormalizedForRequestHeader.jpg 16_AboutToGetAuthHeaderParamsNormalizedForRequestHeader_2.jpg 17_ParamsAreNormalizedForRequestHeader.jpg 18_AboutToSendAPIRequestToGetAllCases.jpg 19_AboutToCreateTheHttpWebRequest.jpg 20_AboutToAddHeadersToRequest.jpg 20_AboutToAddHeadersToRequest_2.jpg 21_AboutToSendTheRequest.jpg 22_ViewOfRequestInfoBeforeSending.jpg 23_Response401Error.jpg 24_Fiddler_RequestDetails.jpg 24_Fiddler_RequestDetails_2.jpg 24_Fiddler_RequestDetails_3.jpg 24_Fiddler_RequestDetails_4.jpg
【问题讨论】:
-
什么鬼?谁投票结束了这个以及为什么
-
我认为不应该关闭它。但在我看来,由于图像的原因,这不是一个写得很好的问题。就目前而言,它们不可读(好吧,你可以放大,但我认为人们不会打扰)
-
是的,事情是这样的,我必须写太多,而图片会加快速度,在这种情况下更清楚。 OAuth 很复杂……所以这不是我想讨论的内容,我想展示不起作用的代码。
-
这就像你提供的信息太少或太多。我认为在这个复杂的案例中拥有代码的屏幕截图将是一个助手的梦想。
-
在调试无效签名时,我们只需要三件事。您的签名库、用于 hmac 签名的代码以及请求/响应的提琴手的输出。我建议使用该格式清理这个问题。