Page 29 -
P. 29
를 개발자가 개입해야 할 때가 있다. 이런 경우에는 가입 시 호출되는 함수들을 제어하면 된다.
클라이언트나 서버에서 Accounts.createUser 함수를 호출해 가입을 요청할 때 서버에서는 2개
의 함수가 순차적으로 호출되는데 이 함수를 우리가 커스터마이징할 수 있다. 2개의 함수는 바로
Accounts.onCreateUser 함수와 Accounts.validateNewUser 함수다. 이들 두 함수로 가입 시 사용
자 정보를 핸들링한다거나 가입 요청 정보의 정합성을 검사할 수 있다.
37.2.1 가입 시 사용자 정보 핸들링하기
클라이언트나 서버 코드에서 Accounts.createUser 함수를 통하여 가입을 요청하면 가입 요청 정
보가 Accounts.onCreateUser 함수로 전달된다. 이 함수를 다음과 같이 서버에서 구현해보자.
만약 여러분이 구현하는 서비스에서 처음 가입한 모든 사용자는 어드민이 아니고 일반 사용자라
고 할 경우 profile에 isAdmin 값을 false로 설정해보자.
서버의 main.js 파일에 다음과 같이 Accounts.onCreateUser를 구현한다. 기본 코드는 다음과 같다.
~/Projects/customLogin/server/main.js
...생략...
Accounts.onCreateUser(function(options, user) {
return user;
});
익명 함수에 넘어오는 두 매개변수 중 options는 createUser에서 넘어오는 정보이고, user는 실
제로 데이터베이스에 저장될 정보다. 따라서 우리는 options에 있는 정보 중 필요한 정보만 user
에 담아서 반환하면 된다. 물론 isAdmin 같은 추가 정보도 저장할 수 있다. 이렇게 반환한 정보를
미티어가 user 컬렉션에 저장한다.
~/Projects/customLogin/server/main.js
...생략...
Accounts.onCreateUser(function(options, user) {
user.profile = options.profile; // 사용자 입력 값을 저장될 값으로 넣어 줌
user.profile.isAdmin = false; // 기본이 어드민 아님
return user;
});
552