Mit Meteor accounts (und accounts-ui
) gibt es eine einfache Möglichkeit, nur neue Benutzeranmeldungen einzuladen? Zum Beispiel indem Sie einen Einladungslink oder einen Einladungscode angeben.
Das einzige, was ich in der Meteor-Dokumentation finden konnte, ist Meteor.sendEnrollmentEmail , aber es löst mein Problem nicht.
Sie können dies mit dem eingebauten Paket tun, aber ich fand es viel einfacher und leistungsfähiger, eine einfache Implementierung zu rollen.
Sie müssen:
UserInvitations
, um die Einladungen zu einem Benutzer zu enthalten. UserInvitations
/ fügen Sie etwas mit meteor mongo
ein
Erstellen Sie mit iron-router
oder ähnlich eine Route, zB:
Wenn das Formular in userRegistration
übergeben wird, rufen Sie
Machen Sie auf dem Server einen Accounts.onCreateUser
Hook, um die Optionen invitationId
von den Optionen an den Benutzer zu übergeben
Auf dem Server erstellen Sie außerdem einen Accounts.validateNewUser
Hook, um die invitationId
zu überprüfen und die Einladung als verwendet zu markieren
Jetzt können nur Benutzer registriert werden, die ein gültiges nicht verwendetes invitationId
haben.
EDIT: Okt. 2014 - Aktualisiert, um Meteor 0.9.x API
zu verwenden Um es mit dem eingebauten Zeug zu tun, können Sie das vorhandene Accounts.sendEnrollmentEmail
zusammenfassen - es ist jedoch ein wenig komplizierter als die andere gegebene Lösung.
Rufen Sie mit dem folgenden Beispielcode die enroll
-Methode wie folgt auf:
Meteor wird dann dem Benutzer eine E-Mail senden (Sie können die Vorlage mit Accounts.emailTemplates
konfigurieren)
Wenn sie auf den Link klicken, ruft meteor die an Accounts.onEnrollmentLink
übergebene Funktion auf - in diesem Fall können Sie sie zu einer Passwort-Einrichtungsseite bringen; aber du musst mit ihrem done
Callback herumspielen.
Ändern Sie den folgenden Code, in dem INSERT XXX HERE
steht; dann in deinem Code code SomeGlobalEnrollmentObjectThing.cancel()
, wenn der Benutzer abbricht, oder SomeGlobalEnrollmentObjectThing.complete(theUsersNewPassword)
, wenn er das neue Passwort einreicht.
Ich habe dafür eine spezifische Lösung erstellt, da Sie mit allen anderen Lösungen nur explizit passwortbasiert erstellen können Konten. Das Paket t3db0t:accounts-invite
ermöglicht das Erstellen von Konten mit einem beliebigen Dienst nur dann, wenn Sie diese zulassen, z. B. mit einer Route "Einladung annehmen". Live-Demo hier .
Tags und Links meteor user-accounts