6

私の最終目標は、ユーザーが複数のサードパーティ認証を同時に持つことです。

現在、Devise を使用してユーザーを作成しています。ユーザーは、電子メール、Facebook、または Google を介してサインアップでき、機能します。しかし今、彼らがすでにサインアップした後、YouTube や soundcloud などでも確認する必要があります。したがって、ユーザーはdeviseで作成されましたが、他のもので確認する必要もあります。

Devise はそれ自身の目的のために omniauth を独り占めするので、側で omniauth を使用することはできません。

私が見ているように、私には3つのオプションがあります:

  • 1人のユーザーで同時に複数の認証を許可するように、デバイスをモンキーパッチして取得してみてください
  • 現在のDevise実装に隣接する側で手動でoauthを行う
  • Deviseをスクラップして別のことをする

アドバイスやその他のオプションをいただければ幸いです

4

2 に答える 2

1

これはあなたが必要としているものかもしれないと思います: http://blog.joshsoftware.com/2010/12/16/multiple-applications-with-devise-omniauth-and-single-sign-on/

彼らもコードをオープンソース化しました!

プロバイダー: https://github.com/joshsoftware/sso-devise-omniauth-provider クライアント: https://github.com/joshsoftware/sso-devise-omniauth-client

または、これをチェックしてください: http://communityguides.heroku.com/articles/16

于 2013-02-16T00:25:41.060 に答える
1

1回の使用で同時に複数の認証を許可するように、デバイスにモンキーパッチを適用して取得してください

開発者にモンキーパッチを適用する必要はありません --- 独自の oauth コントローラーを持つことができます。

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

ルートで使用します

devise_for :user, 
         :controllers => {
           :omniauth_callbacks => "users/omniauth_callbacks"
         }
于 2013-02-15T22:17:40.047 に答える