Meteor-계정

이 패키지는 완전한 사용자 인증 기능을 허용합니다. 명령 프롬프트 창에서 다음 코드를 실행하여 추가 할 수 있습니다.

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

인증 예

이 예는 기본 인증을 보여줍니다. 우리는 만들 것입니다register, login, 및 home템플릿. 있는 경우currentUser (사용자가 성공적으로 등록 또는 로그인 된 경우) home템플릿이 표시됩니다. 없는 경우currentUser, registerlogin 템플릿이 표시됩니다.

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>

먼저, 우리는 register행사. 이 함수는 레지스터 입력을 읽고, 새로운 사용자를 생성하고, 데이터베이스에 저장합니다.

두 번째 이벤트는 login. 이번에는 함수가login 템플릿에서 이메일과 비밀번호가 유효하면 사용자로 로그인하고 유효하지 않으면 오류를 반환합니다.

그리고 마지막으로 logout 이벤트는 버튼을 클릭하면 사용자를 로그 아웃하는 데 사용됩니다.

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);
            }
         });
      }
   });
}

앱이 시작되면 다음 페이지가 표시됩니다.

에 이메일과 비밀번호를 입력하면 register새 사용자를 등록하고 로그인 할 수 있습니다. 콘솔이 사용자를 기록하는 것을 볼 수 있습니다.id 그리고 home 템플릿이 렌더링됩니다.

그만큼 login이벤트는 이메일과 비밀번호가 정확하면 데이터베이스를 확인하고 사용자를 로그인합니다. 그렇지 않은 경우 콘솔에서 오류를 기록합니다.

사용자가 LOGOUT 버튼을 누르면 앱이 사용자를 로그 아웃하고 registerlogin 템플릿.