2015-10-15 40 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)。我相信它可以幫助很多。 –