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;
}