Page 33 -
P. 33
이제 client 폴더의 main.js에 로그인 버튼 이벤트를 구현해보자.
~/Projects/customLogin/client/main.js
Template.customSignUp.events({
...생략...
});
Template.customLogIn.events({
"click button[name=login]" (evt,tmpl){
var email = tmpl.find('input[name=email]').value;
var password = tmpl.find('input[name=password]').value;
Meteor.loginWithPassword(email,password,function(error){
if(!error){
Meteor.logoutOtherClients();
}else{
alert(error.reason);
}
});
}
});
위 코드에서 로그인은 Meteor.loginWithPassword 메서드를 이용했다.
노트 미티어의 계정 관련 메소드들
Meteor.user() – {_id : 문자열 , emails : []} 형태의 json을 리턴한다. _id는 현재 로그인된 사용자의 고유한 아이디
값이고 emails는 로그인된 사용자의 이메일 배열이다. 미티어는 내부에 한 명의 사용자가 여러 개의 이메일을 가질 수 있
게 설계되어 있다. 따라서 사용자가 이메일을 1개만 가지고 있더라도 배열로 리턴한다.
Meteor.userId() – 클라이언트 코드에서 사용하며, 현재 로그인된 사용자의 _id 값을 리턴한다.
Meteor.users – 미티어 사용자 컬렉션을 리턴한다. 몽고DB에서 users라는 컬렉션이다.
Meteor.loggingIn() – 클라이언트 브라우저에서, 현재 사용자가 로그인 프로로세스중일 경우 true를 리턴하는 리엑티브
데이터소스 값이다. 사용자가 로그인 버튼 클릭 후 로그인 완료 전 단계의 프로세싱 과정을 표시할 때 유용한 메서드이다.
Meteor.logout() – 클라이언트 브라우저에서 현재 로그인된 사용자를 로그아웃시킨다. 미티어는 사용자가 로그아웃을
원할 경우 간단히 클라이언트 코드에서 Meteor.logout 메서드만 호출하면 된다.
Meteor.logoutOtherClients() – 현재 클라이언트에 로그인된 사용자의 계정으로 또 다른 디바이스들의 동일한 사용
자를 동시에 로그아웃시킨다. 물론 현재 디바이스는 로그아웃시키지 않는다. 자세한 내용은 다음 37.3.2 계정별 동시 접속
제어(557쪽)를 확인해 보자.
Meteor.loginWithPassword – 가입시 설정한 비밀번호로 로그인한다. 물론 사전 가입이 되어있는 사용자만 된다.
556