Ruby on rails 3 Rails omniauth-twitter在用户每次登录时请求应用程序授权

Ruby on rails 3 Rails omniauth-twitter在用户每次登录时请求应用程序授权,ruby-on-rails-3,twitter,omniauth,Ruby On Rails 3,Twitter,Omniauth,在Railscast中:Ryan使用omniauth进行登录。在视频中,当他第一次点击登录按钮时,Twitter询问用户是否愿意授权Ryan的应用程序。第二次单击“登录”按钮时,用户将自动登录。在我的应用程序中,用户每次都必须授权我的应用程序。如果用户已登录twitter并已授权该应用程序,那么它不应该“正常工作”吗 编辑:我的应用程序当前具有读、写和直接消息权限。我也在使用omniauth twitter(0.0.6)。如果您请求DM权限或其他高级权限,这可能会导致问题。() 如果这没有帮助,

在Railscast中:Ryan使用omniauth进行登录。在视频中,当他第一次点击登录按钮时,Twitter询问用户是否愿意授权Ryan的应用程序。第二次单击“登录”按钮时,用户将自动登录。在我的应用程序中,用户每次都必须授权我的应用程序。如果用户已登录twitter并已授权该应用程序,那么它不应该“正常工作”吗


编辑:我的应用程序当前具有读、写和直接消息权限。我也在使用omniauth twitter(0.0.6)。

如果您请求DM权限或其他高级权限,这可能会导致问题。()


如果这没有帮助,更多的细节将是有用的。

我怀疑是回归或以下方面的问题:

编辑:解决问题。

我相信,
oauth
删除了单独的策略。在任何情况下,使用
designe
,以下选项可修复此问题(应与其他Twitter oauth配置的修改相同):


好的,我们刚刚发布了新版本。请使用0.0.7

多亏了

干杯,
Arun

我解决了将登录链接目的地更改为

"/auth/twitter?x_auth_access_type=read"

在这里添加一个非rails答案

只需确保在应用程序的twitter设置中选中“允许使用此应用程序登录twitter”复选框。否则,Twitter将始终将您重定向到授权页面,而不是身份验证页面


在最后检查twitter设置之前,我花了45分钟对rails应用程序进行故障排除,希望这能节省一些时间。

似乎当你的应用程序设置读取、写入和访问直接消息时,它总是请求权限。
将其设置为“仅读”或“读写”可以解决此问题。

如果您最初将应用程序权限设置为“读写”,然后在验证一次后添加了“访问直接消息”权限,则随后的验证尝试将导致“登录”页面重新出现。但是,请注意,您将看到应用程序仍然没有权限访问该用户的直接消息。这是因为你的应用程序现在正试图请求直接消息权限,但你的访问令牌最初只是为读/写而设置的

我发现@toptwetcom提到在应用程序权限更改后必须重新生成访问令牌(而不是应用程序API密钥)。我仍然处于开发模式,但以下是对我有效的方法:

  • 转到,找到你的应用程序并转到“权限”选项卡
  • 如果尚未将权限更改为“读、写和访问直接消息”。(有时需要一分钟才能显示更改并保持刷新!)
  • 转到API键选项卡(仍适用于应用程序)
  • 单击“重新生成我的访问令牌”按钮并确认
  • 注销你的应用程序(如果尚未注销)
  • 在应用程序中,使用Twitter重新登录(并重新授权应用程序)
  • 如果您现在转到,您应该会看到您已经为应用程序授予了“读、写和直接消息”权限。此外,如果你退出应用程序并通过Twitter重新登录,它应该“正常工作”(假设你已经使用Twitter登录)


    另外,请务必阅读。

    我现在也有同样的问题。您是在本地测试应用程序还是在远程服务器上测试应用程序(不知道是否更好,但在使用本地回调和引用时,twitter应用程序似乎存在问题)我正在本地服务器上测试。这是一个老问题,但对于新手来说,如果您的应用程序权限最初是“读写”的话如果将它们改为“读、写和访问直接消息”,则会出现此问题。请参阅下面我的答案,了解我为修复此问题所做的操作。如果您想遵循此操作,请添加补丁拉取请求:非常感谢此快速修复!我更新了我的宝石,事实上,它现在的工作预期。再次感谢你的回应:)酷。谢谢你使用这个:-)这也是我的问题:)随着时间的推移,这是最有可能在2013年找到这个页面的人的答案
    "/auth/twitter?x_auth_access_type=read"