我正在使用包accounts-password
和useraccounts:bootstrap
,这一切都运行正常,这意味着登录表单会在Meteor.users集合中创建一个新文档。但我不希望面向应用程序的客户端上有任何集合,因此我确实有第二个应用程序运行,我通过DDP.connect()成功连接,我可以通过pub / sub和调用方法交换所有必要的文档/集合远程应用程序。
唯一不起作用的是useraccount doc。我已经使用过(在客户端应用程序上):
remote.subscribe('users', Meteor.userId(), function() {
});
和(在远程应用上):
Meteor.publish('users', function() {
return Meteor.users.find({});
});
即使我不确定包中是否包含pub / sub。尽管如此,文档仍然写入本地(客户端)应用程序而不是远程应用程序。
我怎样才能做到这一点?
答案 0 :(得分:1)
useraccounts:core
只是在客户端调用的方法中使用服务器端的Accounts.createUser
(请参阅this line)(请参阅this another line)。
因此,新的用户对象是从服务器端而不是从客户端创建的(尽管由于DDP和默认用户订阅而它一直流向客户端...)。
如果你真的想要改变Meteor核心Accounts
软件包(accounts-base
,accounts-password
在这种情况下提供...)提供的默认行为,你应该尝试覆盖Accounts.createUser
方法全部开始......
在任何情况下都会被警告默认情况下当前用户已发布到客户端:请参阅these lines
最后,为防止useraccounts:core
使用Accounts
API,您可以尝试覆盖AtCreateUserServer方法,并在其中的远程应用程序上处理新用户的创建。 / p>
答案 1 :(得分:0)
包accounts-base
提供此类功能。
accounts-base
包导出两个名为AccountsClient
和AccountsServer
的构造函数,分别用于创建客户端和服务器上可用的Accounts
对象。然而,在更复杂的身份验证情况下,这两个构造函数可以多次实例化,在不同的帐户服务器及其客户端之间创建多个独立的连接。