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.