0

在我的应用程序中,用户可以使用本教程中的代码登录 Facebook 。唯一的问题是我想允许以老式方式注册我的应用程序的用户(如用户进入注册页面并输入他们的所有数据,如电子邮件、密码等,而不是使用 Facebook 登录。)能够将他们的 Facebook 帐户与他们现有的帐户相关联。我还没有看到任何关于这个的问题,我想知道我应该如何实现这个。

Omniauthcallbacks 控制器

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def all
    user = User.from_omniauth(request.env["omniauth.auth"])
    if user.persisted?
      flash.notice = "Signed in!"
      sign_in_and_redirect user
    else
      session["devise.user_attributes"] = user.attributes
      redirect_to new_user_registration_url
    end
  end
  alias_method :facebook, :all
end
4

1 回答 1

0

唯一的问题是我希望允许以老式方式注册我的应用程序的用户(如用户进入注册页面并输入他们的所有数据,如电子邮件、密码等,而不是使用 Facebook 登录。)能够将他们的 Facebook 帐户与他们现有的帐户相关联。

两种可能的方式:

  1. 当用户使用 Facebook 注册流程时,使用电子邮件地址自动将现有帐户与该电子邮件集连接。(“一个电子邮件地址为 foo@example.com 的帐户已经存在,你想连接你的 Facebook 帐户吗?”)

  2. 让用户使用您的登录系统登录,然后为他们提供“与您的 Facebook 帐户连接”按钮——然后当他们通过 Facebook 进行身份验证时,将该 Facebook ID 与登录的用户帐户连接起来。

于 2013-03-13T09:46:00.290 回答