使用多个提供程序遇到omniauth问题。我应该使用omniauth.rb文件吗?

时间:2014-04-30 00:55:10

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

我想在我的Rails项目中实现omniauth-instagram和omniauth-facebook,并继续遇到问题,并且不断对所有资源感到困惑。

我想专注于这个资源:
https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview

上述资源提及:
Remember that config.omniauth adds omniauth provider middleware to your application. This means you should not add this provider middleware again in config/initializers/omniauth.rb as they'll clash with each other and result in always-failing authentication.

我想澄清一下这与其他文档中提到的 config / initializers / omniauth.rb 有何关系。

我的实际问题:
我应该有一个 omniauth.rb 文件,还是 devise.rb 配置(如下所示)代替它?

devise.rb

  require "omniauth-instagram"
  OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE if Rails.env.development? 
  config.omniauth :instagram, 'client_id', 'secret_key'

正确方向上的任何一点都会很棒!

1 个答案:

答案 0 :(得分:1)

我使用devise + omniauth使用户能够通过Facebook登录。设置在config / initializers / devise.rb中。我没有omniauth.rb。

devise.rb看起来像这样。(只有omniauth部分)

 Devise.setup do |config|

   # ==> OmniAuth
   # Add a new OmniAuth provider. Check the wiki for more information on setting
   # up on your models and hooks.
   # config.omniauth :github, 'APP_ID', 'APP_SECRET', :scope => 'user,public_repo'

   config.omniauth :facebook, 'APP_ID', 'APP_SECRET'

 end

另外,你的devise.rb太短了。您可以生成devise.rb模板并使用此命令。

rails generate devise:install