如何验证签名/消费者秘密

时间:2012-09-08 05:36:56

标签: php oauth

我正在创建自己的“Oauth服务提供商'系统'”,我有一个疑问......

我应该如何验证oauth_signature / consumer_secret ..我基本上不理解它。

我的问题是:

  1. oauth_signature参数发送给服务提供商时,它是否已经使用signature_method或'plaintext'进行了散列。
  2. 当收到它时,我应该使用signature_method对它进行散列(或不是,基于Q1),然后查看它是否与数据库中的那个匹配?
  3. 使用hash_hmac时参数应该是什么?我的意思是,这是什么数据以及函数中的秘密是什么
  4. 对不起,如果它很复杂或我是一个巨大的菜鸟 - 我一直在寻找答案,但找不到任何明确的答案。

    注意:我没有使用PHP的Oauth库/类

1 个答案:

答案 0 :(得分:1)

  1. 如果oauth_signature_methodPLAINTEXT,那么oauth_signature的值就是普通的签名基本字符串。如果它显示HMAC_SHA1或其他加密散列算法,则客户端使用此算法使用其秘密对签名基本字符串进行散列,然后将此散列作为oauth_signature参数发送。
  2. 由于客户端已经对基本字符串进行了哈希处理,因此您只需将发送的值与您在服务器端计算的值进行比较即可。
  3. data是您构建的signature base stringsecretthis format中客户端和令牌的秘密:

    {CONSUMER_SECRET}&{OAUTH_TOKEN_SECRET}