Ruby on rails 3 Rails omniauth-twitter在用户每次登录时请求应用程序授权
在Railscast中:Ryan使用omniauth进行登录。在视频中,当他第一次点击登录按钮时,Twitter询问用户是否愿意授权Ryan的应用程序。第二次单击“登录”按钮时,用户将自动登录。在我的应用程序中,用户每次都必须授权我的应用程序。如果用户已登录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权限或其他高级权限,这可能会导致问题。() 如果这没有帮助,
编辑:我的应用程序当前具有读、写和直接消息权限。我也在使用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密钥)。我仍然处于开发模式,但以下是对我有效的方法:
另外,请务必阅读。我现在也有同样的问题。您是在本地测试应用程序还是在远程服务器上测试应用程序(不知道是否更好,但在使用本地回调和引用时,twitter应用程序似乎存在问题)我正在本地服务器上测试。这是一个老问题,但对于新手来说,如果您的应用程序权限最初是“读写”的话如果将它们改为“读、写和访问直接消息”,则会出现此问题。请参阅下面我的答案,了解我为修复此问题所做的操作。如果您想遵循此操作,请添加补丁拉取请求:非常感谢此快速修复!我更新了我的宝石,事实上,它现在的工作预期。再次感谢你的回应:)酷。谢谢你使用这个:-)这也是我的问题:)随着时间的推移,这是最有可能在2013年找到这个页面的人的答案
"/auth/twitter?x_auth_access_type=read"