在注册时从来宾帐户传输数据

时间:2015-05-10 08:02:11

标签: meteor

我正在构建一个可以在不登录的情况下使用的任务管理应用程序(使用artwells:meteor-accounts-guest)。当用户注册帐户时,我希望来宾帐户的任务转移到新帐户。

我尝试使用Accounts.onCreateUser来执行此操作,但是回调内部显示guest帐户的ID(Meteor.user()为null)。

如何在不必相信客户端代码向服务器报告自己的访客帐号ID的情况下完成此操作?

2 个答案:

答案 0 :(得分:0)

有多种方法可以做到这一点。我可能会将访客帐户数据与本地存储调用一起存储,每当您加载用户可以注册完整帐户的模板时,在本地保存访客帐户数据。

然后,当您调用onCreateUser时,您可以提取该数据。

您还可以执行@kyll提到的操作,并创建用于创建新用户的服务器端方法。您只需确保可以传递访客帐户ID以选择正确的访客帐户文档。

答案 1 :(得分:-1)

我犯了一个错误:Meteor.user()Accounts.onCreateUser为空的原因是accounts-guest甚至没有加载!

我最终能够访问Accounts.onCreateUser中的两个用户ID:

Accounts.onCreateUser(function(options, user) {
  currentUser = Meteor.user()
  if (currentUser.profile !== undefined && currentUser.profile.guest === true)
      Tasks.update({user: currentUser._id}, {$set: {user: user._id}}, {multi: true})
  if (options.profile)
      user.profile = options.profile;
  return user;
});