Recherche…


Paquet de comptes Meteor

Vous avez quelques options pour vous connecter à Meteor. La méthode la plus courante consiste à utiliser des accounts pour Meteor.

Comptes-mot de passe

Si vous souhaitez que les utilisateurs puissent créer et enregistrer sur votre site, vous pouvez utiliser accounts-password .

Installez le paquet en utilisant meteor add accounts-password .

Pour créer un utilisateur, vous devez utiliser Accounts.createUser(options, [callback])

options doit être un objet avec les propriétés suivantes:

  • username : le nom d'utilisateur de l'utilisateur sous forme de chaîne ..
  • email : email utilisateur sous forme de chaîne.
  • password : password utilisateur (non chiffré) en tant que chaîne.
  • profile : données supplémentaires facultatives de l'utilisateur en tant qu'objet. Cela peut être par exemple le prénom et le nom de l'utilisateur. profile est facultatif, cependant.

Le rappel renvoie 1 variable s'il y a une erreur, qui est un objet Meteor.Error.

Vous devez uniquement utiliser le username ou le email pour pouvoir créer un utilisateur avec un nom d'utilisateur, mais pas d'email, et vice versa. Vous pouvez également utiliser les deux.

Il renvoie l'ID utilisateur nouvellement créé si tout s'est bien passé.

Ainsi, vous pouvez par exemple utiliser ceci:

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

Il vous connectera automatiquement si l'utilisateur a été créé avec succès.

C'est la partie créatrice. Pour vous connecter, vous devez utiliser Meteor.loginWithPassword(identifier, password, [callback]) du côté client.

identifier est le username , l' email ou userId tant que chaîne de votre utilisateur. password de password password est le (non crypté) le password de password de l'utilisateur.

Le rappel renvoie une variable s'il y a une erreur, qui est un objet Meteor.Error.

Exemple:

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

Et c'est tout pour la création de base de comptes et la connexion.

Accès aux données utilisateur

Vous pouvez vérifier sur le côté client si l'utilisateur est connecté en appelant Meteor.userId() qui renverra son userId s'il est connecté et undefined s'il n'est pas connecté.

Vous pouvez obtenir des informations sur Meteor.user() . Il ne sera pas défini si l'utilisateur n'est pas connecté et si certaines données utilisateur le sont. Il ne vous fournira aucun mot de passe par défaut, il affichera par défaut l'identifiant de l'utilisateur, le nom d'utilisateur et l'objet du profil.

Si vous souhaitez vérifier si un utilisateur est connecté sur une page, vous pouvez également utiliser l'assistant currentUser . Il retournera le contenu de Meteor.user() . Exemple:

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

Autres fonctions de comptes

Il existe d'autres fonctions qui fonctionnent pour tous les packages de comptes.

Vous pouvez vous déconnecter en utilisant Meteor.logout()

Ne pas utiliser le champ de profil par défaut

Il existe un champ existant tentant appelé profile qui est ajouté par défaut lorsqu'un nouvel utilisateur s'inscrit. Ce champ était historiquement destiné à être utilisé comme bloc-notes pour les données spécifiques à l'utilisateur - peut-être leur avatar d'image, leur nom, texte d'introduction, etc. De ce fait, le champ de profile de chaque utilisateur Il est également publié automatiquement sur le client pour cet utilisateur particulier.

Il s'avère que le fait d’avoir un champ accessible en écriture par défaut sans que cela soit trop évident pourrait ne pas être la meilleure idée. Il y a beaucoup d'histoires de nouveaux développeurs Meteor stockant des champs tels que isAdmin sur le profile … puis un utilisateur malveillant peut facilement définir cela comme vrai à tout moment, se faisant un administrateur. Même si cela ne vous préoccupe pas, il est déconseillé de laisser des utilisateurs malveillants stocker des quantités arbitraires de données dans votre base de données.

Plutôt que de traiter des spécificités de ce domaine, il peut être utile d’ignorer entièrement son existence. Vous pouvez le faire en toute sécurité tant que vous refusez toutes les écritures du client:

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

Même en ignorant les implications de sécurité du profil, il n'est pas judicieux de placer toutes les données personnalisées de votre application sur un seul champ. Le protocole de transfert de données de Meteor ne permet pas de différencier profondément les champs. Il est donc recommandé d'aplatir vos objets dans de nombreux champs de niveau supérieur du document.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow