Suche…


Meteor-Kontopaket

Sie haben einige Möglichkeiten, um sich bei Meteor anzumelden. Die gebräuchlichste Methode ist die Verwendung von accounts für Meteor.

Konto-Passwort

Wenn Sie möchten, dass sich Benutzer auf Ihrer Site erstellen und registrieren können, können Sie accounts-password .

Installieren Sie das Paket mit dem meteor add accounts-password das Konto " meteor add accounts-password .

Um einen Benutzer zu erstellen, müssen Sie Accounts.createUser(options, [callback])

options muss ein Objekt mit den folgenden Eigenschaften sein:

  • username : Der Benutzername des Benutzers als String.
  • email : Die E- email des Benutzers als Zeichenfolge.
  • password : Das (nicht verschlüsselte) Kennwort des Benutzers als Zeichenfolge.
  • profile : Die optionalen zusätzlichen Daten des Benutzers als Objekt. Dies kann beispielsweise der Vor- und Nachname des Benutzers sein. profile ist jedoch optional.

Der Callback gibt 1 Variable zurück, wenn ein Fehler vorliegt, bei dem es sich um ein Meteor.Error-Objekt handelt.

Sie müssen lediglich entweder den username oder die email . Sie können also einen Benutzer mit einem Benutzernamen, aber ohne E-Mail erstellen, und umgekehrt. Sie können auch beides verwenden.

Wenn alles korrekt lief, wird die neu erstellte Benutzer-ID zurückgegeben.

So können Sie beispielsweise Folgendes verwenden:

// server side
var id = Accounts.createUser({
    username: "JohnDoe",
    email: "[email protected]",
    password: "TheRealJohn123",
    profile: {
        firstName: "John",
        lastName: "Doe"
    }
}, function(err) {
    console.log(err.reason);
});

Sie werden automatisch auch angemeldet, wenn der Benutzer erfolgreich erstellt wurde.

Das ist der schaffende Teil. Um sich anzumelden, müssen Sie Meteor.loginWithPassword(identifier, password, [callback]) auf der Clientseite verwenden.

identifier ist der username , die email userId oder die username userId als Zeichenfolge Ihres Benutzers. password ist das (nicht verschlüsselte) password des Benutzers.

Der Rückruf gibt eine Variable zurück, wenn ein Fehler vorliegt, bei dem es sich um ein Meteor.Error-Objekt handelt.

Beispiel:

// client side
Meteor.loginWithPassword("JohnDoe", "TheRealJohn123", function(err) {
    console.log(err.reason);
});

Und das ist es für das grundlegende Erstellen von Konten und das Einloggen.

Zugriff auf Benutzerdaten

Sie können auf der Clientseite prüfen, ob der Benutzer angemeldet ist, indem Sie Meteor.userId() userId Diese gibt ihre userId wenn sie angemeldet ist, und undefined wenn sie nicht angemeldet ist.

Sie können einige Informationen von Meteor.user() . Es wird undefined zurückgegeben, wenn der Benutzer nicht angemeldet ist, und einige Benutzerdaten, falls dies der Fall ist. Standardmäßig werden keine Kennwörter angegeben. Standardmäßig werden die Benutzer-ID des Benutzers, der Benutzername und das Profilobjekt angezeigt.

Wenn Sie prüfen möchten, ob ein Benutzer auf einer Seite angemeldet ist, können Sie auch den currentUser Helper verwenden. Der Inhalt von Meteor.user() . Beispiel:

{{#if currentUser}}
    <h1>Hello there, {{currentUser.username}}!</h1>
{{else}}
    <h1>Please log in.</h1>
{{/if}}

Andere Kontofunktionen

Es gibt einige andere Funktionen, die für jedes Kontopaket funktionieren.

Sie können sich mit Meteor.logout()

Verwenden Sie nicht das Standardprofilfeld

Es gibt ein verführerisches Feld namens profile , das standardmäßig hinzugefügt wird, wenn sich ein neuer Benutzer registriert. Dieses Feld war früher dazu gedacht, als Notizblock für benutzerspezifische Daten verwendet zu werden - etwa für dessen Avatar, Name, Intro-Text usw. Aus diesem Grund ist das profile jedes Benutzers automatisch von diesem Benutzer vom Client aus beschreibbar . Es wird auch automatisch für den jeweiligen Benutzer auf dem Client veröffentlicht.

Es stellt sich heraus, dass ein Feld, das standardmäßig beschreibbar ist, ohne dass dies sehr offensichtlich ist, nicht die beste Idee ist. Es gibt viele Geschichten von neuen Meteor-Entwicklern, die Felder wie isAdmin im profile speichern. Dann kann ein böswilliger Benutzer dies jederzeit auf "true" setzen und sich selbst zum Administrator machen. Selbst wenn Sie sich darüber keine Sorgen machen, ist es nicht ratsam, böswillige Benutzer in der Datenbank beliebige Datenmengen speichern zu lassen.

Anstatt sich mit den Besonderheiten dieses Feldes auseinanderzusetzen, kann es hilfreich sein, seine Existenz einfach zu ignorieren. Sie können dies sicher tun, solange Sie alle Schreibvorgänge vom Client ablehnen:

// Deny all client-side updates to user documents
Meteor.users.deny({
  update() { return true; }
});

Selbst wenn Sie die Sicherheitsauswirkungen des Profils ignorieren, ist es nicht ratsam, alle benutzerdefinierten Daten Ihrer App in einem Feld zusammenzufassen. Das Datentransferprotokoll von Meteor führt keine tief verschachtelten Unterschiede zwischen Feldern aus. Daher ist es eine gute Idee, Ihre Objekte in viele Felder der obersten Ebene des Dokuments zu glätten.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow