0

我想通过 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 的最佳方法是什么?

4

1 回答 1

0

您仍然有几种不同的方法可以做到这一点。

  1. 使用人们登录 facebook 时使用的电子邮件在他们的 facebook 帐户和您的站点帐户之间建立连接。

  2. 向您的用户数据库添加一个新列(称为 uid,键入字符串)。当您使用 oauth 时,将返回有关用户的信息哈希,包括该唯一标识符。这是一个例子。然后,您可以存储此 uid 以供以后用作登录方式。

无论这些实现选择如何,您都需要使用omniauth gem 和omniauth-facebook gem(您需要为每个提供者使用不同的gem)。有关更多信息,请参阅项目的 wiki。它真的很容易使用。在您的情况下,要使其正常工作,您所要做的就是将这 2 个 gem 添加到您的 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 Key 和 API Secret,您需要创建一个 Facebook 应用程序来处理 oauth 连接。所以前往https://developers.facebook.com/apps并创建它。然后不要忘记编辑这些设置:

Settings>Basic>Website>Site URL:
  http://localhost:3000/ for development/testing
  your_website_callback_url for production
于 2012-06-10T22:52:45.263 回答