我试图在rails应用程序中使用omniauth-twitter,但我在一开始就被卡住了,不知道原因是什么。我确实在dev.twitter.com中注册了我的应用程序,并且获得了CONSUMER_KEY和CONSUMER_SECRET。为了缩短测试时间,我将这两个变量直接放在initializers/omniauth.rb中
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, "an_alphanumeric_code", "some_other_alphanumeric_code"
end在application.html.erb layout中,我有推特登录的链接
<%= link_to "Sign in with Twitter", "auth/twitter" %>但是当我点击登录,而不是被重定向到twitter登录时,我会得到
401 Unauthorized我已经检查了SO上的其他问题,这应该不是计算机时间问题(我的rails服务器的时间设置是正确的)。我怀疑问题出在没有公网IP和服务器名称可供测试。
有没有人能够让omniauth-twitter在本地127.0.0.1:3000 rails服务器上工作?
发布于 2013-01-08 21:45:27
Omniauth Twitter适用于本地rails开发环境。要检查的事项:
您的回调路由设置正确,如下所示:
match "/auth/:provider/callback" => "sessions#create"还要注意link_to中路径中可能缺少的前导斜杠。尝试更改为:
<%= link_to "Sign in with Twitter", "/auth/twitter" %>在我的Omniauth Twitter实现中(应该和其他实现一样),如果您已经登录到Twitter,它不会将您带到登录或确认屏幕。它会将您重定向到您在dev.twitter.com中指定的url。因此,检查你的应用程序,看看它是否正在进行Twitter身份验证(使用Firebug或Chrome开发工具)。这应该有助于追踪你的问题。
https://stackoverflow.com/questions/14212472
复制相似问题