流星 - 账户


该软件包允许完整的用户身份验证功能。您可以通过在命令提示符窗口中运行以下代码来添加它。

C:\Users\username\Desktop\meteorApp>meteor add accounts-password

认证示例

此示例将显示基本身份验证。我们将创建注册、登录主页模板。如果存在当前用户(如果用户已成功注册或登录),则会显示主页模板。如果没有currentUser,则注册登录模板将可见。

流星App.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>

首先,我们需要创建一个注册事件。该函数将读取寄存器输入,创建一个新用户,并将其存储到数据库中。

第二个事件是登录。这次,该函数将从登录模板中读取输入,如果电子邮件和密码有效则登录用户,如果无效则返回错误。

最后,一旦单击按钮,注销事件将用于注销用户。

流星App.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);
            }
         });
      }
   });
}

应用程序启动后,我们将看到以下页面。

流星账户启动

在注册表中输入电子邮件和密码后,我们可以注册并登录新用户。我们将看到控制台记录了用户ID并且呈现了主页模板。

流星账户注册

登录事件将检查数据库并登录用户,如果电子邮件和密码正确如果没有,控制台将记录错误。

Meteor 账户登录错误

如果用户单击“注销”按钮,应用程序将注销用户并显示注册登录模板。