什么是Twitter OAuth中的oauth_token_secret

时间:2010-01-02 20:10:59

标签: twitter oauth

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

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

什么是oauth_token_secret?这是用于签署受保护请求的内容,还是仍然使用的consumer_key。

2 个答案:

答案 0 :(得分:15)

简短的回答是:oauth_tokenoauth_token_secret都构成了用于签署请求的请求令牌。

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

这不是消费者密钥。消费者密钥仅用于在请求令牌绑定到用户时识别消费者(=调用Twitter的代码)。然后,请求令牌由公共部分和秘密部分组成,这些部分都用于签署请求,如第9节中的说明所述。

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

答案 1 :(得分: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都是一样的。

在我的网站上我开发了twitter oauth,之后我开发了任何其他oauth 1.0服务提供商身份验证,我无法弄清楚为什么甚至需要oauth_token_secret。一旦我在雅虎和linkedin上尝试相同的代码,我有一个令人讨厌的冲击,因为相同的代码工作的Twitter没有在其他服务提供商工作(即我使用上面的第一个片段,当我应该使用第二个片段)