阶段:
我有一个 Rails 应用程序,它应该使用他们的 Twitter 帐户对用户进行身份验证,所以我使用 Omniauth-Twitter gem。
我已经配置了一个应用程序来dev.twitter.com
启用Sign in with twitter
标志和获取consumer_key
和consumer_secret
。
我正在关注本指南https://github.com/arunagw/omniauth-twitter#readme
在 Rails 应用程序中,我配置了一些文件:
config/initializers/omniauth.rb
:Rails.application.config.middleware.use OmniAuth::Builder do # Twitter consumer data CONSUMER_KEY='xxxxxxxxxxxxxxxxx' CONSUMER_SECRET='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy' provider :twitter, CONSUMER_KEY, CONSUMER_SECRET end
sessions_controller.rb
好像:class SessionsController < ApplicationController def create raise request.env["omniauth.auth"].to_yaml end end
applications.html.erb
布局:<div id="user_nav"> <%= link_to "Sign in with Twitter", "/auth/twitter" %> </div>
所以我除了当我点击
Sign in with Twitter
链接时,我会引发一个异常,显示我的身份验证数据或要求我进行 Twitter 授权。
问题:
而不是这个,它返回这个:
OAuth::Unauthorized (401 Unauthorized):
oauth (0.4.7) lib/oauth/consumer.rb:216:in `token_request'
oauth (0.4.7) lib/oauth/consumer.rb:136:in `get_request_token'
omniauth-oauth (1.0.1) lib/omniauth/strategies/oauth.rb:29:in `request_phase'
omniauth-twitter (0.0.15) lib/omniauth/strategies/twitter.rb:63:in `request_phase'
omniauth (1.1.3) lib/omniauth/strategy.rb:207:in `request_call'
omniauth (1.1.3) lib/omniauth/strategy.rb:174:in `call!'
omniauth (1.1.3) lib/omniauth/strategy.rb:157:in `call'
omniauth (1.1.3) lib/omniauth/builder.rb:48:in `call'
这里有什么问题?