【问题标题】:When i try to authenticate oauth1 rest api returnse Invalide_signature error当我尝试对 oauth1 进行身份验证时,rest api 返回 Invalide_signature 错误
【发布时间】:2018-05-03 05:23:41
【问题描述】:

我必须访问 Snoobi api 进行分析。 他们提供了不同的步骤来通过 Oauth1 对 Snoobi api 进行身份验证。他们是 Snoobi 有两个用于身份验证的 api 调用,第一个请求我可以访问 https://api.snoobi.com/oauth/requesttoken?oauth_callback= 并获取请求 url。 Bu 在第二次请求https://api.snoobi.com/oauth/accesstoken 的情况下返回 invlid_signature。 我想不通这个问题...... 我的示例站点是Sample site,这些身份验证由 DDO oauth1 库完成。 认证步骤如下。 第 1 步:请求令牌 Snoobi API 的请求令牌端点位于:

https://api.snoobi.com/oauth/requesttoken

使用 HTTP POST 到 URL 发出请求:

https://api.snoobi.com/oauth/requesttoken?oauth_callback=<your application callback, URL encoded>

授权标头 OAuth 参数在 HTTP 授权标头中发送

字段值 oauth_consumer_key 您的应用程序消费者密钥(40 个字符) oauth_nonce 随机生成的 ASCII 格式的字符串。具有相同随机数和时间戳组合的后续请求将被忽略。建议使用 64 位随机数。 oauth_signature 请求签名 oauth_signature_method HMAC-SHA1″ 或 “PLAINTEXT oauth_timestamp Unix 时间戳 oauth_version 1.0

授权标头示例(为便于阅读添加了换行符):

Authorization: OAuth oauth_consumer_key=”2cab9166c5180256f4788a7669c181c84bec61ee”\,oauth_signature_method=”HMAC-SHA1″,\oauth_nonce=”7524122124ddba21d644043.98235934″\
,oauth_timestamp=”1306239517″,\
oauth_version=”1.0″,\
oauth_signature=”kP6LwV%2FJfs9YcG4irDJuoP271uU%3D”

请求成功时 /oauth/requesttoken 返回请求令牌和令牌密钥。它们分别来自参数“oauth_token”和“oauth_token_secret”。此外,在响应参数“authentification_url”中提供了身份验证 URL。 URL 类似于:https://api.snoobi.com/oauthgrant.php,您的应用程序应将用户的浏览器重定向到此地址。如果用户尚未登录到 Snoobi,系统将提示他这样做。 登录后,用户可以访问他们可以授予应用程序访问权限的视图:

Snoobi 的 OAuth 授权视图

一旦用户单击授予按钮,他就会被重定向到您的回调 url,并添加 oauth_token 和验证器作为 url 参数:

http://youapp.com/callback.php?oauth_token=66393e59b10dddc112a8d1cbca9f9559d01127a1&verifier_token=051dd4f45b791957d8c12b83b9810365bbb50e63

第 2 步:访问令牌 现在您的应用程序已经获取了请求令牌、秘密和验证者,它已准备好调用访问令牌端点以获取永久访问令牌。 访问令牌端点是:

https://api.snoobi.com/oauth/accesstoken

授权标头 字段值 oauth_consumer_key 您的应用程序消费者密钥(40 个字符) oauth_nonce 以 ASCII 格式随机生成的字符串。具有相同随机数和时间戳组合的后续请求将被忽略。建议使用 64 位随机数。 oauth_timestamp Unix 时间戳 oauth_version 1.0 oauth_token 你的请求令牌 oauth_signature 签名

Authorization: OAuth oauth_verifier=”ff17678750b3ca5b5263babee610bb9f47f7a1b6″,\oauth_consumer_key=”2cab9166c5180256f4788a7669c181c84bec61ee”,\oauth_signature_method=”HMAC-SHA1″,\
oauth_nonce=”2556773534ddb9f01d00518.41306989″,\
oauth_timestamp=”1306238721″,\
oauth_version=”1.0″,\
oauth_token=”f3a4eb25c1267f28d5de54e89a78db48f4d7ed30″,\
oauth_signature=”%2F9y%2BtMdCZk1uRYawXsfWHb%2BPmig%3D”

成功时,accesstoken 服务会在 oauth_token 和 oauth_token_secret 字段中返回访问令牌和密钥。

【问题讨论】:

    标签: rest api authentication oauth oauth-1.0a


    【解决方案1】:

    当我尝试将身份验证器更改为发布表单数据时,它会授予访问权限。我认为文档错误地定义了这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 2018-10-09
      • 1970-01-01
      • 2021-02-06
      相关资源
      最近更新 更多