Je n'arrive pas à comprendre la relation entre Accounts.createUser() et Accounts.onCreateUser(). J'ai une API externe qui valide les informations de connexion des utilisateurs. Une fois que l'API m'a envoyé une réponse positive, j'ai besoin d'ajouter l'utilisateur dans MongoDB et de commencer sa session afin qu'il puisse être considéré comme un connecté utilisateur. Accounts.createUser() crée un utilisateur côté serveur, mais j'ai besoin de Accounts.onCreateUser() car j'ai besoin d'ajouter des champs personnalisés comme le jeton de l'utilisateur généré à partir de l'API externe.Ajouter un utilisateur manuellement sur le côté serveur et définir leur session
C'est le code que j'ai en ce moment (ce qui n'ajoute pas un utilisateur du tout):
code côté serveur:
var request = {
'headers': {
'Content-Type': 'application/x-www-form-urlencoded'
},
'params': user
};
try {
var response = HTTP.call('POST', url, request); //send call to the external api
var token = response.data.token;
//decode the token and add the user in the database
var userInfo = Base64.decode(token.split('.')[1]);
var options = {
email: user._username,
profile: {
name: user._username
},
token: token
};
var user = Accounts.onCreateUser(function(options, user) {
if (options.token)
user.token = options.token;
if (options.profile)
user.profile = options.profile;
return user;
});
console.log(user); //this returns undefined
return JSON.stringify({
'code': 200,
'token': userInfo
});
} catch (error) {
console.log(error);
//console.log(error.response);
var body = error.response.content;
return body;
}