【发布时间】:2013-12-18 12:31:07
【问题描述】:
在尝试访问“/auth/twitter”时,我遇到了一个典型的omniauth 问题。
其他解决方案的问题是我无法从 user.rb 中删除 :omniauthable,因为 facebook 身份验证不起作用。
另外,如果我删除下面的设计行,twitter 身份验证将起作用。好像twitter和facebook的omniauth存在兼容性问题,有没有人有解决办法?
谢谢
devise.rb
require "omniauth-facebook"
config.omniauth :facebook, FACEBOOK_APP_ID, FACEBOOK_APP_SECRET
宝石文件
# Users from facebook
gem 'omniauth'
gem 'omniauth-facebook'
omniauth.rb
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET
end
models/user.rb
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable, :omniauthable, omniauth_providers: [:facebook]
end
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 omniauth