3

免责声明:我仍然从 MVC3(尤其是 OAuth)开始。我可能犯了一个基本的错误。

问题

我的控制器看到没有存储 cookie [注意:是的,我在不同的讨论中使用 cookie。让我们接受这一点并继续前进。]并引导我访问 Twitter。伟大的。但是,当我单击授权时,我会立即返回 Twitter 的授权页面。

到目前为止我的预感

看来我的应用程序没有正确处理 Twitter 回发/回调到我的页面。

这些成分

  • ASP.NET MVC 3
  • Twitterizer 库
  • C#

总体思路/逻辑流程

这可能存在问题,因为这是我第一次使用 MVC3 和 OAuth。

http://i56.tinypic.com/2rxchw7.png

编码

一开始我很犹豫是否要发布它,因为我想确保我对它应该如何流动的看法是正确的,并且因为可以理解的是它有一点需要挖掘。

提前感谢您提供的任何帮助!

4

2 回答 2

0

我不是 100% 确定,因为我不是 Twitter API 专业人士。但我认为 Twitter 不允许 localhost 作为回调。并且可能是他们在允许重定向发生之前执行 URL 解析的查找。他们将无法访问您的 .hosts 文件中指定的内容。

考虑简单地发布oauth_callback到一个实时 URL,最好是你自己控制的一个。检查你是否最终到达那里。然后你可以弄清楚如何获取 oauth_token 和 oauth_verifier。(专业提示:抓取 URL,或者如果可以,让页面在屏幕上打印变量以便于抓取)。

还测试将“oob”指定为回调,看看会发生什么。

编辑:我刚刚意识到抓取 URL 是行不通的,因为你正在做一个 Web 应用程序。对不起。但是让一个实时 URL 获取 oauth_token 和 oauth_verifier 并从该页面重定向到 localhost 或其他什么?

于 2011-08-22T17:15:04.597 回答
0

如果我正确阅读了您的流程图,则您可能误解了 oauth 流程的一部分。当我按照图表进行操作时,就好像这是用户第一次访问(没有 cookie,没有令牌/验证器),您在 twitter 交互后有一个 POST。永远不会有POST。Twitter 的服务器不执行回调。用户将被重定向(HTTP 302)到回调 url,其中令牌和验证器附加到查询字符串。

此外,根据您是否提供了验证程序或令牌,有不同的行为似乎很奇怪。如果你做对了,你永远不会有一个没有另一个,即使你做错了,你也永远不会有一个没有令牌的验证者。

您在什么时候调用 GetAccessToken 方法?

于 2011-08-25T18:49:40.080 回答