Meteor - Contas
Este pacote permite a funcionalidade completa de autenticação do usuário. Você pode adicioná-lo executando o seguinte código na janela do prompt de comando.
C:\Users\username\Desktop\meteorApp>meteor add accounts-password
Exemplo de autenticação
Este exemplo mostrará a autenticação básica. Vamos criarregister, login, e homemodelos. Se houver umcurrentUser (se o usuário for registrado ou logado com sucesso), o homemodelo será mostrado. Se não hácurrentUser, a register e login os modelos estarão visíveis.
meteorApp.html
<head>
<title>meteorApp</title>
</head>
<body>
{{#if currentUser}}
{{> home}}
{{else}}
{{> register}}
{{> login}}
{{/if}}
</body>
<template name = "register">
<h2>REGISTER:</h2>
<form>
<input type = "email" name = "registerEmail"><br>
<input type = "password" name = "registerPassword"><br>
<input type = "submit" value = "Register"><br>
</form>
</template>
<template name = "login">
<h2>LOGIN:</h2>
<form>
<input type = "email" name = "loginEmail"><br>
<input type = "password" name="loginPassword"><br>
<input type = "submit" value = "Login"><br>
</form>
</template>
<template name = "home">
<p>You're logged in.</p>
<button class = "logout">Logout</button>
</template>
Primeiro, precisamos criar um registerevento. Esta função irá ler as entradas do registro, criar um novo usuário e armazená-lo no banco de dados.
O segundo evento é login. Desta vez, a função irá ler as entradas dologin template, faça o login do usuário se o email e a senha forem válidos ou retorne um erro se não forem.
E finalmente o logout O evento será usado para fazer o logout do usuário, uma vez que o botão seja clicado.
meteorApp.js
if (Meteor.isClient) {
Template.register.events({
'submit form': function(event) {
event.preventDefault();
var registerData = {
email: event.target.registerEmail.value,
password: event.target.registerPassword.value
}
Accounts.createUser(registerData, function(error) {
if (Meteor.user()) {
console.log(Meteor.userId());
} else {
console.log("ERROR: " + error.reason);
}
});
}
});
Template.login.events({
'submit form': function(event) {
event.preventDefault();
var myEmail = event.target.loginEmail.value;
var myPassword = event.target.loginPassword.value;
Meteor.loginWithPassword(myEmail, myPassword, function(error) {
if (Meteor.user()) {
console.log(Meteor.userId());
} else {
console.log("ERROR: " + error.reason);
}
});
}
});
Template.home.events({
'click .logout': function(event) {
event.preventDefault();
Meteor.logout(function(error) {
if(error) {
console.log("ERROR: " + error.reason);
}
});
}
});
}
Assim que o aplicativo for iniciado, obteremos a página a seguir.
Ao inserir o e-mail e a senha no registerformulário, podemos registrar e fazer o login do novo usuário. Veremos que o console registra os usuáriosid e a home o modelo é renderizado.
o loginO evento irá verificar o banco de dados e fazer o login do usuário, se o email e a senha estiverem corretos. Caso contrário, o console registrará um erro.
Se o usuário clicar no LOGOUT botão, o aplicativo fará o logout do usuário e mostrará o register e login modelos.