수색…


유성어 계정 패키지

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]) .

identifierusername 의 문자열 인 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을 깊이 수행하지 않으므로 개체를 문서의 많은 최상위 필드로 병합하는 것이 좋습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow