수색…
유성어 계정 패키지
Meteor로 로그인 할 때 몇 가지 옵션이 있습니다. 가장 일반적인 방법은 Meteor에 accounts
을 사용하는 것입니다.
계정 - 암호
사용자가 사이트에서 만들고 등록 할 수있게하려면 accounts-password
사용할 수 있습니다.
meteor add accounts-password
사용하여 패키지를 설치하십시오.
사용자를 만들려면 Accounts.createUser(options, [callback])
를 사용해야합니다.
options
는 다음과 같은 속성을 가진 객체 여야합니다.
-
username
: 문자열의 사용자 이름 -
email
: 사용자의 전자 메일 문자열입니다. -
password
: 암호화되지 않은 사용자 암호입니다. -
profile
: 사용자의 선택적인 추가 데이터를 개체로 사용합니다. 예를 들어 사용자의 성과 이름이 될 수 있습니다.profile
은 선택 사항입니다.
Meteor.Error 객체 인 오류가 있으면 콜백은 1 개의 변수를 반환합니다.
username
이나 email
만 사용하면되므로 username
이름은 있지만 전자 메일은없는 사용자를 만들 수 있으며 반대의 경우도 마찬가지입니다. 둘 다 사용할 수도 있습니다.
모든 것이 올바르게 수행되면 새로 작성된 사용자 ID를 리턴합니다.
예를 들어 다음과 같이 사용할 수 있습니다.
// server side
var id = Accounts.createUser({
username: "JohnDoe",
email: "[email protected]",
password: "TheRealJohn123",
profile: {
firstName: "John",
lastName: "Doe"
}
}, function(err) {
console.log(err.reason);
});
사용자가 성공적으로 생성 된 경우 자동으로 로그인됩니다.
그것이 창조의 일부입니다. 로그인하려면 Meteor.loginWithPassword(identifier, password, [callback])
를 클라이언트 측에서 사용해야 Meteor.loginWithPassword(identifier, password, [callback])
.
identifier
는 username
의 문자열 인 username
, email
또는 userId
입니다. password
는 사용자의 (암호화되지 않은) password
입니다.
콜백은 Meteor.Error 객체 인 오류가 있으면 하나의 변수를 반환합니다.
예:
// client side
Meteor.loginWithPassword("JohnDoe", "TheRealJohn123", function(err) {
console.log(err.reason);
});
그리고 그것은 계정의 기본 생성 및 로그인을위한 것입니다.
사용자 데이터 액세스
Meteor.userId()
를 호출하여 로그인하면 클라이언트 측에서 확인할 수 있습니다. Meteor.userId()
는 로그인 한 경우 userId
를 반환하고 로그인하지 undefined
경우 undefined
반환합니다.
Meteor.user()
에서 정보를 얻을 수 있습니다. 사용자가 로그인하지 않은 경우 undefined를 반환하고 사용자 데이터가있는 경우 사용자 데이터를 반환합니다. 기본적으로 모든 암호를 제공하지는 않습니다. 기본적으로 사용자의 사용자 ID, 사용자 이름 및 프로필 개체가 표시됩니다.
사용자가 페이지에 로그인했는지 확인하려면 currentUser
도우미를 사용할 수도 있습니다. Meteor.user()
의 내용을 반환합니다. 예:
{{#if currentUser}}
<h1>Hello there, {{currentUser.username}}!</h1>
{{else}}
<h1>Please log in.</h1>
{{/if}}
기타 계정 기능
모든 계정 패키지에서 작동하는 몇 가지 다른 기능이 있습니다.
Meteor.logout()
사용하여 로그 아웃 할 수 있습니다.
기본 프로필 필드를 사용하지 마십시오.
새로운 사용자가 등록 할 때 기본적으로 추가되는 profile
이라는 유혹적인 기존 필드가 있습니다. 이 필드는 역사적으로 사용자 별 데이터에 대한 스크래치 패드로 사용하기위한 것이 었습니다. 즉, 이미지 아바타, 이름, 소개 텍스트 등입니다.이 때문에 모든 사용자의 profile
필드는 해당 사용자가 클라이언트에서 자동으로 쓸 수 있습니다. 또한 특정 사용자의 클라이언트에 자동으로 게시됩니다.
슈퍼 영웅이 아니라면 기본적으로 쓸 수있는 필드를 갖는 것이 최선의 아이디어가 아닐 수도 있습니다. profile
isAdmin
과 같은 필드를 저장하는 새로운 Meteor 개발자에 대한 많은 이야기가 있습니다. 악의적 인 사용자는 원하는 경우 언제든지이를 사실로 설정하여 관리자가 될 수 있습니다. 이 점에 대해 걱정하지 않더라도 악의적 인 사용자가 데이터베이스에 임의의 양의 데이터를 저장하도록하는 것은 좋지 않습니다.
이 분야의 특성을 다루기보다는 그것의 존재를 완전히 무시하는 것이 도움이 될 수 있습니다. 클라이언트로부터의 모든 쓰기를 거부하는 한 안전하게 수행 할 수 있습니다.
// Deny all client-side updates to user documents
Meteor.users.deny({
update() { return true; }
});
프로필의 보안 의미를 무시하더라도 앱의 모든 맞춤 데이터를 하나의 입력란에 넣는 것은 좋지 않습니다. Meteor의 데이터 전송 프로토콜은 필드의 중첩 된 diffing을 깊이 수행하지 않으므로 개체를 문서의 많은 최상위 필드로 병합하는 것이 좋습니다.