我的最终目标是让用户同时拥有多个 3rd 方身份验证。
现在,我正在使用 Devise 创建用户。用户可以通过电子邮件或 Facebook 或谷歌注册,它可以工作。但是现在,在他们已经注册后,我还需要他们通过 youtube 或 soundcloud 进行验证。所以用户是用设计创建的,但我还需要他们用其他东西来验证。
由于 Devise hogs omniauth 是为了它自己的目的,所以我不能同时使用 omniauth。
在我看来,我有三个选择:
我将不胜感激任何建议或其他选择
最佳答案
Try to monkeypatch devise and get it to allow multiple authentications at the same time on one use
你不需要monkeypatch设计---你可以拥有自己的oauth Controller
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def facebook
# handle if already a twitter user
# handle if a new user
# use the `sign_in user` to sign_in the user
end
def twitter
# handle if already a facebook user
# handle if a new user
end
end
并在 route 使用它
devise_for :user,
:controllers => {
:omniauth_callbacks => "users/omniauth_callbacks"
}
关于ruby-on-rails - Rails 应用程序中的多个同时 Oauth?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14904104/