2016-10-16 4 views
3

Ich kann nicht herausfinden, wie Sie das Registrierungstoken aus der Funktion Accounts.sendEnrollmentEmail abrufen können.Meteor.js - Anmelde-Token abrufen/abrufen (aus Accounts.sendEnrollmentEmail)

Ich weiß, dass diese Funktion eine Direct-Mail zum Benutzer sendet, die am Ende so etwas wie folgt aussieht:

http://localhost:3000/#/enroll-account/FCXzBbqHInZgBlLaOpu8Iv11jP9DJEG-e1auAHDsh6S

Allerdings würde ich irgendwie nur auf den Token Teil FCXzBbqHInZgBlLaOpu8Iv11jP9DJEG-e1auAHDsh6S erhalten muß wie Ich möchte die Einschreibebriefe über einen anderen Dienst (zB Poststempel) senden

Wie geht das?

Antwort

2

Die Funktion Accounts.sendEnrollmentEmail(userId, email) generiert ein zufälliges Token und speichert es im Feld services.password.reset.token des Benutzers.

Der Code, der das Token erzeugt ist:

var token = Random.secret(); 
    var when = new Date(); 
    var tokenRecord = { 
    token: token, 
    email: email, 
    when: when 
    }; 
    Meteor.users.update(userId, {$set: { 
    "services.password.reset": tokenRecord 
    }}); 

(Sie den Quellcode der Funktion anzeigen können here).

Es sendet dann eine E-Mail an den Benutzer mit dem Email Paket. Wenn Sie einen anderen Dienst verwenden mögen die E-Mail zu schicken, haben Sie grundsätzlich zwei Möglichkeiten:

  • Verwenden Sie die gleiche Konvention selbst (das heißt, den gleichen Datensatz erstellen und Ihren eigenen E-Mail-Dienst in Ihrer eigenen Funktion verwenden).
  • Verwenden Sie die vorhandene Funktion, lassen Sie die E-Mail-Zustellung unbeaufsichtigt ablaufen, und fragen Sie dann das Dokument des Benutzers nach dem Token ab und senden Sie die E-Mail selbst.

Keine ist eine besonders gute Option, aber beide werden vorerst funktionieren. Ich wünschte, sie hätten diesen Teil in seine eigene Funktion umgewandelt.

Beachten Sie, dass die Kontenpakete einige Änderungen in Bezug auf die Veröffentlichung der nächsten Meteor-Versionen erfahren werden.

BTW, diese Funktion ist sehr ähnlich zu Accounts.sendResetPasswordEmail, die Sie möglicherweise auch überschreiben oder Ihre eigene Version erstellen möchten.

+0

Oh Mann danke ein Haufen für die Klärung dieses zu mir! Habe das ganze Wochenende damit verbracht, meinen Kopf dazu zu bringen! – klanc

+1

Ich bin froh, dass ich geholfen habe. Es gibt nichts Besseres als einen Blick auf den Quellcode und Tests, um die Interna besser zu verstehen. – MasterAM