Ich würde Sie vorschlagen SecondaryEmail
ein neues Modell zu erstellen.
Ein User
kann has_many :secondary_emails
, und jeder SecondaryEmail
belongs_to :user
.
Sie müssen die Bestätigung der Eindeutigkeit für jede E-Mail in SecondaryEmail
hinzufügen, und weiterhin müssen sicherstellen, dass keine neue SecondaryEmail bereits eine primäre E-Mail eines Benutzers ist.
Stellen Sie die Schnittstelle zur Verfügung, so dass ein User
seine secondary_emails mit diesen Validierungen hinzufügen kann.
Im nächsten Schritt wird die SessionController
von Devise überschrieben.
Richten Sie bei jedem Login-Vorgang Ihren Login-Vorgang für SecondaryEmail.where(:email => params[:email])
ein, wenn in den primären E-Mails des Benutzers keine E-Mail gefunden wird. Wenn es existiert, authentifizieren Sie sich mit dem Passwort dieses Benutzers, andernfalls existiert der Benutzer nicht.
Das ist, was ich bis jetzt gefunden habe. Ich würde wirklich gerne die Ansichten und den Ansatz der Experten darin kennenlernen. :)
Haben Sie zu-Anmeldung mit den sekundären E-Mails aktivieren möchten, für jeden Benutzer? – kiddorails
Ja, ein Benutzer sollte sich nur mit einer seiner E-Mails anmelden können. Auch eine E-Mail sollte nicht in der Lage sein koexistieren zu können, eindeutige E-Mails pro Accounts über das gesamte System ... So wie Facebook damit umgeht ... – AnApprentice
Mir ist eine bestehende Lösung dafür nicht bekannt, aber wenn Sie sich dazu entschließen schreibe es selbst, du könntest damit beginnen, das zumindest ähnlich ist (mehrere mögliche Login-Werte): https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in -using-ihre-Benutzername-oder-E-Mail-Adresse – MrTheWalrus