2015-10-15 74 views
0

我想使用AutoForm创建一个注册表单,其中后续创建用户。 Furtehremore,新用户注册后应自动登录。如何使用AutoForm注册用户并登录?

因此,我创建了一个自动窗体和提供的meteormethod称为signUp

Meteor.methods({ 
    signUp: function (doc) { 
     check(doc, Schema.signUp); 
     Accounts.createUser({username: doc.username, password: doc.password}); 
    } 
}); 

这完美的作品。但是,我不知道如何从服务器端登录用户?这甚至有可能吗?

如果不是,我该如何解决这个问题?我需要在我的Schema custom验证功能中包含Accounts.createUser({username: doc.username, password: doc.password});吗?

+0

查看Atmosphere上的useraccounts包。这可能是你想要的,虽然不是这个问题的答案 –

+0

也不要把'Accounts.createUser'放在'custom'验证函数中。你能解释一下你的方法没有登录你的问题吗?在服务器端登录某人意味着什么?哪个客户端登录? –

回答

1

要与任何集合使用aldeed:autoform,你首先需要定义模式到集合,因为autoform依赖于连接到该集合simple-schema。没有模式,表单将不会出现,您会看到autoform引发的未捕获的异常。

所以起初,你需要定义模式。之后,可以将用户更新或插入到Meteor.users集合中。查看用户收集实体的典型简单对象结构的官方文档,首先,您可能只需console.log目前经过身份验证的Meteor.user()即可查看它具有哪些必填字段。

我的个人建议是不要使用autoform来搅乱用户。这不是非常安全,您需要明确控制哪些用户(或角色)可以删除您的用户以及哪些用户没有。这只是解决额外的痛苦,它可能只是否定了autoform的便利。

+0

另请参阅[本讨论](https://github.com/aldeed/meteor-autoform/issues/607)。我相信它可以帮助很多。 –

相关问题