我想在我的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'
正确方向上的任何一点都会很棒!
答案 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