[英]401 Unauthorized with omniauth-twitter
我正在尝试在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布局中,我具有指向Twitter的链接登录
<%= link_to "Sign in with Twitter", "auth/twitter" %>
但是当我单击登录时,而不是重定向到Twitter登录,我得到了
401 Unauthorized
我已经检查了SO上的其他问题,这应该不是计算机时间问题(我的Rails服务器的时间设置正确)。 我怀疑问题出在没有公共IP和服务器名称可用于测试。
是否有人能够从本地127.0.0.1:3000 Rails服务器工作omniauth-twitter?
注册应用程序时,您是否在应用程序中添加了Callback URL
? 如果缺少Callback URL
,则这是您将遇到的第一个问题。
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开发者工具)。 那应该有助于找出您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.