首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >401未经授权的omniauth-twitter

401未经授权的omniauth-twitter
EN

Stack Overflow用户
提问于 2013-01-08 18:04:21
回答 2查看 748关注 0票数 0

我试图在rails应用程序中使用omniauth-twitter,但我在一开始就被卡住了,不知道原因是什么。我确实在dev.twitter.com中注册了我的应用程序,并且获得了CONSUMER_KEY和CONSUMER_SECRET。为了缩短测试时间,我将这两个变量直接放在initializers/omniauth.rb中

代码语言:javascript
运行
复制
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, "an_alphanumeric_code", "some_other_alphanumeric_code"
end

在application.html.erb layout中,我有推特登录的链接

代码语言:javascript
运行
复制
<%= link_to "Sign in with Twitter", "auth/twitter" %>

但是当我点击登录,而不是被重定向到twitter登录时,我会得到

代码语言:javascript
运行
复制
401 Unauthorized

我已经检查了SO上的其他问题,这应该不是计算机时间问题(我的rails服务器的时间设置是正确的)。我怀疑问题出在没有公网IP和服务器名称可供测试。

有没有人能够让omniauth-twitter在本地127.0.0.1:3000 rails服务器上工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-08 18:39:11

您是否在注册应用程序时将Callback URL放入应用程序中?如果Callback URL丢失,那么这是您将遇到的第一个问题。

票数 5
EN

Stack Overflow用户

发布于 2013-01-08 21:45:27

Omniauth Twitter适用于本地rails开发环境。要检查的事项:

您的回调路由设置正确,如下所示:

代码语言:javascript
运行
复制
match "/auth/:provider/callback" => "sessions#create"

还要注意link_to中路径中可能缺少的前导斜杠。尝试更改为:

代码语言:javascript
运行
复制
<%= link_to "Sign in with Twitter", "/auth/twitter" %>

在我的Omniauth Twitter实现中(应该和其他实现一样),如果您已经登录到Twitter,它不会将您带到登录或确认屏幕。它会将您重定向到您在dev.twitter.com中指定的url。因此,检查你的应用程序,看看它是否正在进行Twitter身份验证(使用Firebug或Chrome开发工具)。这应该有助于追踪你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14212472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档