ruby-on-rails - Rails 应用程序中的多个同时 Oauth?

标签 ruby-on-rails oauth devise omniauth

我的最终目标是让用户同时拥有多个 3rd 方身份验证。

现在,我正在使用 Devise 创建用户。用户可以通过电子邮件或 Facebook 或谷歌注册,它可以工作。但是现在,在他们已经注册后,我还需要他们通过 youtube 或 soundcloud 进行验证。所以用户是用设计创建的,但我还需要他们用其他东西来验证。

由于 Devise hogs omniauth 是为了它自己的目的,所以我不能同时使用 omniauth。

在我看来,我有三个选择:

  • 尝试使用monkeypatch设计并让它允许一个用户同时进行多个身份验证
  • 在与当前设计实现相邻的一侧手动执行 oauth
  • 废品设计并做一些不同的事情

  • 我将不胜感激任何建议或其他选择

    最佳答案

    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/

    相关文章:

    javascript - 使用 jquery 获取 ruby​​ 对象的 id

    java - Java 中的 AFOAuth2Client 等价物

    ruby-on-rails - 猴子修补设计(或任何 Rails gem)

    ruby - 使用 Rack 中间件在每个请求上添加 api_key

    ruby-on-rails - Rails 嵌套表单错误创建重复字段

    ruby-on-rails - 无法测试应该属于_to,在 Rails 上缺少 id 外键

    ruby-on-rails - rails HABTM : Select everything a that a record 'has'

    ruby-on-rails - HAML 语法错误中的 Rails 表单

    c# - C# 安装应用程序中的 Google OAuth 2.0 身份验证

    javascript - 如何使用 google-api-javascript-client 使用 Javascript 访问 Google Photos API 并读取 JSON 数据?