我正在为我的用户在rails代码推文上实现一些ruby。我正在创建适当的oauth链接......类似于
http://twitter.com/oauth/authorize?oauth_token=y2RkuftYAEkbEuIF7zKMuzWN30O2XxM8U9j0egtzKv
但在我的测试帐户授予访问Twitter的权限后,它会提取一个页面,说“您已成功授予访问权限。只需返回并输入以下PIN即可完成此过程.1234567”
我不知道用户应该在哪里输入此PIN以及为什么他们必须这样做。我不认为这应该是必要的一步。 Twitter应该将用户重定向到我在应用程序设置中提供的回调URL。有谁知道为什么会这样?
更新 我发现this article表示我需要将用户发送到此网址(请注意“身份验证”而不是“授权”):
http://twitter.com/oauth/authenticate?oauth_token=y2RkuftYAEkbEuIF7zKMuzWN30O2XxM8U9j0egtzKv
我做了更改,但Twitter点击“允许”后再将用户重定向到授权路径,然后再次给他7位数的PIN码!
答案 0 :(得分:6)
OAuth 1.0a添加了PIN码来解决social engineering attack to which OAuth 1.0 was vulnerable。但是,如果您的应用程序是桌面/ iPhone应用程序,则只需要用户手动输入PIN。如果它是一个Web应用程序,PIN应该作为浏览器重定向的一部分自动流动,用户不应该看到或输入它。
因此,如果您的应用是一个网络应用,那么您的OAuth库或您使用它时就会出现错误。如果您的应用是桌面应用,则这是一项旨在确保用户安全的“功能”。
答案 1 :(得分:6)
如果您没有使用您希望用户在接受时重定向到的URL指定oauth_callback
参数,则默认为基于引脚的身份验证机制。使用oauth_callback=oob
也将触发基于引脚的身份验证流程。
答案 2 :(得分:1)
只需登录您的Twitter帐户并编辑应用程序从桌面更改为浏览器每个人都在犯这样的错误,包括我自己。
答案 3 :(得分:0)
当我使用
时,我注意到了 config.gem "twitter", :version => "0.6.12"
twitter重定向正常,不显示引脚
但是当我使用更新的宝石版
时config.gem "twitter", :version => "0.9.2"
它总是显示引脚。
这肯定需要进一步调查,可以通过进一步配置来解决 我没有对新的创业板做过。