2

阶段

我有一个 Rails 应用程序,它应该使用他们的 Twitter 帐户对用户进行身份验证,所以我使用 Omniauth-Twitter gem。

我已经配置了一个应用程序来dev.twitter.com启用Sign in with twitter标志和获取consumer_keyconsumer_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'

这里有什么问题?

4

0 回答 0