【问题标题】:Twitter OAuth "Could not authenticate you" when I specify a callback url当我指定回调 URL 时,Twitter OAuth“无法验证您”
【发布时间】:2018-01-27 00:10:38
【问题描述】:

我在request_token 阶段遇到了 Twitter OAuth 1.0 问题

如果我设置了 ooboauth_callback(甚至省略了回调 url),那么它可以正常工作,但之后当然不会将用户重定向到我的网络应用程序。

注意我可能会以错误的方式解决这个问题。我只想指定在 Twitter 上授权 OAuth 请求后客户端浏览器应定向到的 URL

一旦我将 oauth_callback 更改为我的应用的回调 url,我就会收到错误 “无法对您进行身份验证”

我已在 twitter 上的应用程序设置中将回调 url 设置为与我在 request_token 进程的 oauth_callback 参数中设置的完全相同的 url,仅供参考,即未指定路径,https://www.example.com/

任何帮助将不胜感激

更新

此请求有效(根本没有指定回调 url):

POST https://api.twitter.com/oauth/request_token HTTP/1.1
Authorization: OAuth oauth_consumer_key="----myconsumerkey----", oauth_nonce="r70s1926", oauth_signature="iFGmXEpDav0lVpge9Ls9ACGI6r0%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1503053275", oauth_version="1.0"

此请求没有(指定回调 url,与 twitter 应用设置相同):

POST https://api.twitter.com/oauth/request_token HTTP/1.1
Authorization: OAuth oauth_callback="https%3A%2F%2Fwww.example.com", oauth_consumer_key="----myconsumerkey----", oauth_nonce="707n8282", oauth_signature="0KWzeJwQ%2FNMfmdZ%2Bt0zNEU4g3Ag%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1503053306", oauth_version="1.0"

上面的请求返回:

{"errors":[{"code":32,"message":"Could not authenticate you."}]}

【问题讨论】:

  • “我收到错误消息“无法对您进行身份验证”” - 从哪里来?直接来自推特?还是从您的应用中,在用户返回那里之后?
  • 问题已更新,希望这只是我忘记做的蠢事:)
  • 我不明白您为什么希望 this 步骤将用户重定向到任何地方......据我所知,这只是您在后台发出的 POST 请求文档。
  • 此步骤不会重定向用户,它只是生成一个令牌,用于authorize 下一步。据我所知,授权步骤没有指定返回 url 以将用户发送回原始网页的地方......所以我假设在 auth_token 步骤中指定的回调 url 将在成功后使用authorize ?
  • 您找到解决方案了吗?我曾经让它工作,但现在我需要更改我的回调 url,我遇到了同样的问题....

标签: c# twitter oauth twitter-oauth


【解决方案1】:

因为排除或设置 oob 有效,这听起来像是签名生成中的编码问题。

检查 oauth_callback url 是否在您的签名基本字符串中进行了双重编码,该字符串应类似于:

POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&oauth_callback%3Dhttps%253A%252F%252Fwww.example.com%26oauth_consumer_key%3Dmyconsumerkey%26oauth_nonce%3D707n8282%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1503057157%26oauth_version%3D1.0

【讨论】:

  • 尝试了单双编码,但对响应没有影响。甚至尝试指定一个没有效果的相对 URL。
  • 奇怪,作为测试尝试使用没有任何需要编码的字符的任何字符,例如“www.example.com”,看看是否有效。
猜你喜欢
  • 1970-01-01
  • 2020-07-18
  • 2014-04-07
  • 1970-01-01
  • 2017-07-11
  • 2014-03-25
  • 1970-01-01
  • 2012-09-26
  • 1970-01-01
相关资源
最近更新 更多