2012-11-06 5 views
5

Ich habe die Devise Omniauth Authentifizierung in meiner Rails-Anwendung erfolgreich mit dem folgenden Tutorial von git vor OmniAuth: OverviewWie erreichen Sie mehrere Authentifizierung mit Devise Omniauth + (Facebook, Twitter, Google)?

Aber es wird nicht mehrere Authentifizierungen implementiert ist, kann sein, Sie alle wissen, dass, und haben vor dem gleichen Problem unterstützen, aber Wenn Sie das Problem erfolgreich gelöst haben, lassen Sie mich die Lösung wissen.

Dies ist das Szenario, das ich mit Omniauth + Devise erreichen muss.

Wir haben einen Benutzer namens John und er hat bereits Konten in beiden Google & Facebook mit der gleichen E-Mail-Adresse "[email protected]".

Also John zum ersten Mal versucht, sich mit seinem Google-Konto einzuloggen, John hat sich diesmal erfolgreich eingeloggt.

aber zum zweiten mal versucht sich john mit seinem facebook account einzuloggen, dieses mal leitet unsere anwendung john an das device registration_url weiter, ohne ihn mit seinem facebook account anmelden zu lassen.

Ich weiß, warum dies hapepnig ist, weil Devise intern die Einzigartigkeit der E-Mail validiert. Aber ich bin sehr neugierig darauf, gibt es eine Möglichkeit, dieses Problem zu optimieren, so dass wir mehrere Authentifizierungen erreichen können. Stack-Overflow hat das selbe sehr schön gemacht.

Bitte helfen Sie mir, die Lösung zu finden.

Danke ..

+0

versuchen Dies wurde hier erfolgreich beantwortet: http: //stackoverflow.com/questions/21249749/rails-4-devise-omniauth-with-multiple-providers – charlysisto

Antwort

4

diese versuchen, in Ihrer devise.rb Datei Kommentar diese Zeile oder E-Mail und die Differenz für diese Verwendung ändern und dann

# 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

ist dies der einzige Weg, um mehrere Authentifizierung zu erreichen. – Sreehari

+0

ein weiterer Weg ist da, aber Sie müssen dafür codieren und Bedingungen schreiben –

Verwandte Themen