【发布时间】:2014-04-06 11:13:56
【问题描述】:
当我的 Twitter 应用执行回调时,我收到错误 OAuth::Unauthorized / 401 Unauthorized。
-
我正在使用:
gem 'omniauth' # (1.2.1) gem 'omniauth-twitter' # (1.0.1) gem 'rails', '4.1.0.rc1' -
为 Twitter 应用提交的回调 URL(尝试了两种解决方案):
- 一个 bit.ly URL 指向:
http://127.0.0.1:3000 - 或:直接 URL:
http://127.0.0.1:3000
- 一个 bit.ly URL 指向:
-
调用的回调 URL 如下:
http://127.0.0.1:3000/auth/twitter/callback?oauth_token=FcU...hYFk&oauth_verifier=Dge...oJ27E -
routes.rb:
get '/auth/:provider/callback', to: 'mycontroller#create' get '/auth/failure', to: redirect('/') 我的机器时间没问题,如下所述:https://github.com/intridea/omniauth/wiki/FAQ
-
我的初始化程序/omniauth.rb 看起来像这样:
Rails.application.config.middleware.use OmniAuth::Builder do provider :twitter, 'e93Q89eW4o...DNMe9w3i8tqQ', 'owERioaRjj...jrKdotiiOeIUdd89irlA' end
我错过了什么?
编辑 - 一些痕迹:
OAuth::Unauthorized (401 Unauthorized):
oauth (0.4.7) lib/oauth/consumer.rb:216:in `token_request'
oauth (0.4.7) lib/oauth/tokens/request_token.rb:18:in `get_access_token'
omniauth-oauth (1.0.1) lib/omniauth/strategies/oauth.rb:57:in `callback_phase'
omniauth (1.2.1) lib/omniauth/strategy.rb:227:in `callback_call'
omniauth (1.2.1) lib/omniauth/strategy.rb:184:in `call!'
omniauth (1.2.1) lib/omniauth/strategy.rb:164:in `call'
omniauth (1.2.1) lib/omniauth/builder.rb:59:in `call'
warden (1.2.3) lib/warden/manager.rb:35:in `block in call'
warden (1.2.3) lib/warden/manager.rb:34:in `catch'
warden (1.2.3) lib/warden/manager.rb:34:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.1.0.rc1) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
【问题讨论】:
标签: ruby-on-rails twitter oauth omniauth