1
Accounts.createUser()와 Accounts.onCreateUser() 간의 관계를 이해할 수없는 것 같습니다. 사용자의 로그인 자격 증명을 확인하는 외부 API가 있습니다. API가 나에게 긍정적 인 응답을 보내면 MongoDB에 사용자를 추가하고 세션을 시작하여 에 로그인하여 사용자로 로그인해야합니다. Accounts.createUser()는 서버 측에서 사용자를 만들고 있지만 외부 API에서 생성되는 사용자 토큰과 같은 사용자 정의 필드를 추가해야하기 때문에 Accounts.onCreateUser()가 필요합니다.서버 측에서 수동으로 사용자 추가 및 세션 설정
서버 측 코드 :
var request = {
'headers': {
'Content-Type': 'application/x-www-form-urlencoded'
},
'params': user
};
try {
var response = HTTP.call('POST', url, request); //send call to the external api
var token = response.data.token;
//decode the token and add the user in the database
var userInfo = Base64.decode(token.split('.')[1]);
var options = {
email: user._username,
profile: {
name: user._username
},
token: token
};
var user = Accounts.onCreateUser(function(options, user) {
if (options.token)
user.token = options.token;
if (options.profile)
user.profile = options.profile;
return user;
});
console.log(user); //this returns undefined
return JSON.stringify({
'code': 200,
'token': userInfo
});
} catch (error) {
console.log(error);
//console.log(error.response);
var body = error.response.content;
return body;
}