[英]Rails: Twitter Omniauth gem 401 Unauthorized Error
我在Web应用程序中使用twitter omniauth gem。 我将密钥和机密存储在数据库中。
这是我的中间件代码
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, lambda { Site.config[:twitter][:key] },lambda{ Site.config[:twitter][:secret] }
end
这将返回未经授权的错误。
但是,当我直接在中间件中指定我的密钥和机密时,它就可以工作。
(即)
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, "consumer_key" , "consumer_secret"
end
我的第一种方法有什么问题?
您需要使用安装阶段
provider :twitter, :setup => true
然后在控制器中:
def setup
request.env['omniauth.strategy'].options[:consumer_key] = Site.config[:twitter][:key]
request.env['omniauth.strategy'].options[:consumer_secret] = Site.config[:twitter][:secret]
render :text => "Setup complete.", :status => 404
end
路线:
match '/auth/:provider/setup' => 'sessions#setup' # for example
您可以在development.rb和production.rb中添加consumer_key和消费者秘密
# twitter api credential
config.twitt_consumer_key = 'xxxxxxxxxxxxxxxxx'
config.twitt_consumer_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
然后你可以使用它
provider :twitter, Rails.application.config.twitt_consumer_key, Rails.application.config.twitt_consumer_secret
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.