2012-11-06 5 views
5

は、私は正常にgit OmniAuth: OverviewDevise Omniauth +(Facebook、Twitter、Google)を使用して複数の認証を行う方法は?

によって次のチュートリアルを使用して、私のRailsアプリケーションに工夫Omniauth認証を実装している。しかし、それはあなたのすべてのことを知っているし、以前と同じ問題に直面しているとすることができ、複数の認証をサポートしていませんが、あなたが人々が同じ問題をうまく微調整したなら、私に解決策を教えてください。

これは、私がOmniauth + Deviseを使用して達成する必要があるシナリオです。

私たちにはJohnという名前のユーザーがいて、彼はすでにGoogle &と同じ電子メールID「[email protected]」のアカウントを持っています。

Johnが初めて自分のGoogleアカウントでログインしようとしたとき、johnは今回ログインに成功しました。

しかし、彼のfacebookアカウントでログインしようとしている今度は、私たちのアプリケーションは彼のfacebookアカウントでサインインせずに、johnをdevise registration_urlにリダイレクトします。

私はdeviseが内部的に電子メールの一意性を検証するため、これがhapepnigである理由を知っています。しかし、私はこの問題を微調整して複数の認証を達成できる方法があるのか​​非常に不思議です。スタックオーバーフローも同じようにうまくいっています。

解決策を見つけてください。

+0

してみてください...ありがとうございます。http: //stackoverflow.com/questions/21249749/rails-4-devise-omniauth-with-multiple-providers – charlysisto

答えて

4

があなたのdevise.rbファイルにコメントこのラインを、これを試してみてくださいまたはメールアドレスを変更し、そのための違いを利用して、これが成功し、ここで回答されている

# to authenticate or find a user. Default is :email. 
    config.case_insensitive_keys = [ :email ] 
    # modifying a user and when used to authenticate or find a user. Default is :email. 
    config.strip_whitespace_keys = [ :email ] 
+0

これは、複数の認証を行う唯一の方法です。 – Sreehari

+0

もう一つの方法がありますが、それをコーディングして条件を記述する必要があります –

関連する問題