在Meteor中创建没有密码的用户

Gez*_*zim 7 authentication accounts meteor

我有一个独特的用户创建流程如下:

  1. 用户第一次来到我的网站,他们点击一个按钮.
  2. 我在数据库中为他们创建了一个用户,并使用UID设置了localStorage密钥.
  3. 使用是关于创建数据,我将数据保存在数据库中并将其与UID相关联.
  4. 用户回来了,如果他们在localStorage中设置了UID,我会向他们展示他们之前创建的数据.
  5. 用户可以单击注册以创建"真实"帐户,从该帐户他们将必须使用用户名和密码或其他服务(例如Facebook)登录.

那么,我如何通过Meteor Accounts和User模型实现这一目标?

简而言之:

  • 我需要创建没有信息的User mongo文档(关于用户).
  • 我需要通过使用UID(充当"密码")来验证用户身份.

Doc*_*oss 8

  1. 注册onCreateUser{anonymous:1}在使用随机密码时添加"匿名"字段(),可能是使用Meteor.uuid().
  2. 添加时间戳字段({created:new Date()})以清除旧的匿名帐户.
  3. 执行旧的匿名用户维护,例如删除超过一小时的匿名用户: Meteor.autorun(function() {Meteor.users.find({anonymous:1,$where:"new Date() - this.created > 360000"}).forEach(function (user) {
    Meteor.users.remove({_id:user._id})}});
  4. 在客户端:
    1. 总是提示"昵称".这将成为官方用户名,或将在系统中永久使用.
    2. 检查客户端是否已登录.如果没有,请创建一个带有昵称和"幻数"密码的用户,该密码会将您登录.当他们单击注册时,在顶部写"注册",但实际上只需更改他们的密码和 $set:{anonymous:0}

不要使用localStorage,也不要使用UID.会话cookie是您的UID.


zor*_*lak 1

我不知道如何帮助进行身份验证,但对于创建空白 User 对象,我已在服务器端成功完成了以下操作(使用不同的名称...):

Meteor.users.insert({profile: {name: 'Oompa Loompa'}, foo: 'bar'});