我想通过OAuth将facebook集成到我的应用中,但我已经设置了现有的用户架构。这是我目前的架构:
# Table name: users
#
# id :integer not null, primary key
# first_name :string(255)
# last_name :string(255)
# email :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# password_digest :string(255)
# remember_token :string(255)
# admin :boolean default(FALSE)
#
使用rails添加facebook auth的最佳方法是什么?
答案 0 :(得分:0)
您还有几种不同的方法可以做到这一点。
使用人们登录Facebook的电子邮件在他们的Facebook帐户和您的网站帐户之间建立连接。
向用户数据库添加新列(称为uid,类型字符串)。使用oauth时,将返回有关用户的信息哈希值,包括该唯一标识符。 Here's an example.然后您可以存储此uid以便以后用作登录方式。
无论这些实现选择如何,您都希望使用omniauth gem和omniauth-facebook gem(您需要为每个提供商提供不同的gem)。有关详细信息,请参阅项目的wiki。它真的很容易使用。在你的情况下,为了让它工作,你所要做的就是将这2个宝石添加到你的Gemfile中:
gem 'omniauth'
gem 'omniauth-facebook'
然后创建一个文件来设置您的策略。该约定将其命名为omniauth.rb:
# config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET
end
要获得API密钥和API密钥,您需要创建一个Facebook应用程序来处理oauth连接。所以转到https://developers.facebook.com/apps并创建它。然后别忘了编辑这些设置:
Settings>Basic>Website>Site URL:
http://localhost:3000/ for development/testing
your_website_callback_url for production