Omniauth无法找到路线

时间:2011-10-27 23:07:01

标签: ruby-on-rails-3 routes omniauth

我正在尝试使用我的Rails 3应用程序实现Omniauth。我按照Railscast episod 205中的教程进行操作,但无法使其工作。当我调用'/ auth / twitter'(它不能与任何提供程序一起工作)时,Rails会抱怨它无法找到合适的路由(它会尝试加载我的默认路由)。

我在config/initializers/下添加了omniauth.rb,将gem 'omniauth'放入我的Gemfile中,然后运行了bundle install。

我不确定如何调试此问题,也不知道提供哪些信息来帮助理解问题。

3 个答案:

答案 0 :(得分:1)

经过一番研究,我找到了解决方案。我在routes.rb文件中添加了以下内容:

  

获取'auth /:provider'=> '认证#中继'

和我的身份验证控制器:

  def passthru
    render :file => "#{Rails.root}/public/404.html", :status => 404, :layout => false
  end

不确定为什么我必须这样做,但它正在运作......

答案 1 :(得分:1)

以下是我的步骤:

1)将omniauth添加到您的Gemfile

2)将omniauth策略添加到您的Gemfile(例如omniauth-linkedin

3)运行bundle install

4)在config/initializers/omniauth.rb

中添加omniauth初始化程序

5)添加匹配auth/:provider/callback => users#omniauth路由到routes.rb(指向您将处理身份验证响应的控制器/操作)

6)构建操作以处理您在步骤#4中引用的控制器中的身份验证响应

7)重启您的网络服务器

在重新启动Apache之前,我无法识别默认的/auth/:provider路由。

答案 2 :(得分:0)

你必须在你的gemfile中添加'omniauth-twitter',并且

:strategy_class => OmniAuth::Strategies::Twitter

到你的omniauth.rb,在Twitter提供商的最后。

然后它将识别/ auth / twitter路径。