【问题标题】:Has anyone used omniauth with rails 2.3.8?有人在rails 2.3.8中使用omniauth吗?
【发布时间】:2010-10-31 10:02:33
【问题描述】:

我是 Rails 新手,我正在尝试将 omniauth 与 rails 2.3.8 一起使用。一世 找不到这个版本的rails的任何教程,所以我提到了 http://blog.railsrumble.com/blog/2010/10/08/intridea-omniauth.

我添加了如下初始化器:

omniauth.rb

OmniAuth::Strategies::Twitter = { 
    :consumer_key => 'xxxxxx', 
    :consumer_secret => 'xxxxxx' 
} 

在这一步之后,如果我尝试点击 URL '/auth/twitter' 然后我得到“否 路由匹配 "/auth/twitter" 和 {:method=>:get}"。

有人在rails 2.3.8 中使用omniauth 吗?

【问题讨论】:

  • rake routes 列出了哪些路线?
  • 我没有在路由文件中添加任何东西,因为教程说一旦你把初始化器放在适当的位置 /auth/twitter 应该带你到 twitter 页面。

标签: ruby-on-rails authentication omniauth


【解决方案1】:

OmniOauth 是一个 Rack::Middleware。所以你需要这样使用它。

所以你需要这样添加:

ActionController::Dispatcher.middleware.use OmniAuth::Strategies::Twitter = { 
    :consumer_key => 'xxxxxx', 
    :consumer_secret => 'xxxxxx' 
} 

【讨论】:

  • 谢谢!这对我有用!我的初始化文件 (omniauth.rb) 现在看起来像这样: ActionController::Dispatcher.middleware.use OmniAuth::Strategies::Twitter, 'xxxconsumer_keyxxx', 'yyyconsumer_secretyyy'
【解决方案2】:

这就是我在 rails 2.3.8 中的工作方式

omniauth.rb:

ActionController::Dispatcher.middleware.use OmniAuth::Builder do
  provider :facebook,
    "key", "secret", 
    :scope => %(email user_birthday publish_stream offline_access),
    :client_options => {:ssl => {:ca_path => '/etc/ssl/certs'}}
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    相关资源
    最近更新 更多