免责声明:我还在开始使用MVC3(特别是OAuth)。我可能犯了一个基本的错误。
问题
我的控制器发现cookie未存储 [注意:是的,我在不同的讨论中使用cookie。让我们接受并继续前进。] 并指导我到Twitter。大。但是,当我点击授权时,我会回到Twitter的授权页面。
我的预感
我的应用似乎没有正确处理Twitter回发/回调到我的页面。
成分
一般理念/逻辑流程
这可能存在问题,因为这是我第一次使用MVC3和OAuth。
http://i56.tinypic.com/2rxchw7.png
守则
我一开始就不愿意发布它,因为我想确保我对这应该如何流动的看法是正确的,并且因为可以理解的是它有一点可以理解。
提前感谢您提供任何帮助!
答案 0 :(得分:0)
我不是100%肯定,因为我不是Twitter API专业人士。但我认为Twitter不允许localhost作为回调。并且可能是他们在允许重定向发生之前执行URL解析。它们无法达到.hosts文件中指定的内容。
考虑简单地将oauth_callback
发布到实时网址,最好是您自己控制的网址。检查你到底那里。然后你可以弄清楚如何掌握oauth_token和oauth_verifier。 (专业提示:抓取URL,或者如果可以,让页面在屏幕上打印变量以便于抓取)。
同时测试指定“oob”作为回调,看看会发生什么。
修改强>: 我刚刚意识到,由于您正在进行Web应用程序,因此刮取URL无法正常工作。抱歉。但是有一个实时URL如何使用oauth_token和oauth_verifier并从该页面重定向到localhost或其他什么?
答案 1 :(得分:0)
如果我正确地阅读您的流程图,您可能误解了部分流程图。当我按照图表时,就好像这是用户第一次访问(没有cookie,没有令牌/验证者),在Twitter交互后你有一个POST。永远不会有POST。 Twitter的服务器不执行回调。用户将被重定向(HTTP 302)到回调URL,并将令牌和验证者附加到查询字符串。
此外,根据您是否提供了验证者或令牌,具有不同的行为似乎很奇怪。如果你做得对,你永远不会没有另一个,即使你做错了,你也永远不会有没有令牌的验证者。
你在什么时候调用GetAccessToken方法?