繁体   English   中英

401未经omniauth-twitter授权

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM