在Twitter oauth中,oauth的秘密是什么

在Twitter oauth中,oauth的秘密是什么,twitter,oauth,Twitter,Oauth,当我从Twitter获得访问令牌时,我会得到如下内容: oauth_token=14410002-F5Bi8hMpQbXamM8MBBw8zw2LYIBL4FEBvxLZfaSwX&oauth_token_secret=K8QNvDcC2f9qtGU8tfa75exwLZ2Sc1jeHrThnk6Co&user_id=14410002&screen_name=blueonion 什么是oauth_令牌_秘密?这是用来签署受保护请求的还是消费者密钥仍然在使用。简短的回答是

当我从Twitter获得访问令牌时,我会得到如下内容:

oauth_token=14410002-F5Bi8hMpQbXamM8MBBw8zw2LYIBL4FEBvxLZfaSwX&oauth_token_secret=K8QNvDcC2f9qtGU8tfa75exwLZ2Sc1jeHrThnk6Co&user_id=14410002&screen_name=blueonion

什么是oauth_令牌_秘密?这是用来签署受保护请求的还是消费者密钥仍然在使用。

简短的回答是:
oauth\u令牌
oauth\u令牌
都构成了用于签署请求的请求令牌

以下是一些可能有帮助的资源:

  • (特别是第6节)
这不是使用者密钥。当请求令牌绑定到用户时,使用者密钥仅用于标识使用者(=调用Twitter的代码)。然后,请求令牌由公共部分和秘密部分组成,这两部分都用于签名请求,如第9节中的规范所述


但您可能想使用其中一个库并查看示例。

这实际上是一个非常好的问题,因为twitter似乎在这一要求上打破了oauth 1.0标准。我意外地发现,如果您从签名密钥中省略了oauth_token_secret,即

$signing_key = encode_rfc3986($consumer_secret).'&';
而不是

$signing_key = encode_rfc3986($consumer_secret).'&'.encode_rfc3986($oauth_token_secret);
在请求访问令牌时,这两种令牌对twitter的作用相同


在我的网站上,我在开发任何其他oauth 1.0服务提供商身份验证之前开发了TwitterOAuth,但我不明白为什么需要oauth令牌密钥。有一次我在雅虎和linkedin上试用了相同的代码,我感到非常震惊,因为在twitter上使用的相同代码在其他服务提供商上不起作用(即我使用的是上面的第一个代码片段,而我本应该使用的是第二个代码片段)

没错,在第9.2节中,我就盯着我的脸看。我一直“看到”消费者秘密,跳过了令牌秘密。OAuth规范非常容易阅读,我仍然设法跳过它。谢谢顺便说一句,我发现在twitter上获得访问令牌并不需要令牌_秘密。很可能是一个bug,这就是我最初怀疑的导致我困惑的原因。我找到了规范并尽职尽责地阅读了它。我遗漏了oauth_token_secret部分,因为规范将其称为“token secret”。你暗示我在问之前没有尽力,这是没有根据的,在这里也不合适。还是这样!;)你什么时候在推特上报道的?