如何利用Meteor方法调用中的'this.userId'?

如何利用Meteor方法调用中的'this.userId'?,meteor,Meteor,目前我有两个应用程序,“Alpha”和“Bravo”,它们被拆分以减少代码大小。但是现在我需要'Bravo'应用程序调用在'Alpha'应用程序中编写的Meteor方法(来自客户端),它需要利用this.userId进行安全保护。但是,如果从“Bravo”应用程序调用,当前的this.userId为空 “Bravo”应用程序通过复制createUsercode并共享同一数据库来创建用户。用户可以毫无问题地登录到每个应用程序。它还通过以下方式连接到Alpha: AlphaDDP=DDP.conne

目前我有两个应用程序,“Alpha”和“Bravo”,它们被拆分以减少代码大小。但是现在我需要'Bravo'应用程序调用在'Alpha'应用程序中编写的Meteor方法(来自客户端),它需要利用
this.userId
进行安全保护。但是,如果从“Bravo”应用程序调用,当前的
this.userId
为空

“Bravo”应用程序通过复制
createUser
code并共享同一数据库来创建用户。用户可以毫无问题地登录到每个应用程序。它还通过以下方式连接到Alpha:
AlphaDDP=DDP.connect(alpha\u服务器\u url)

但是在Bravo应用程序中,如果我调用
AlphaDDP.call('updateDoc',docId,newData)

this.userId
值在Alpha日志中打印为null。我假设当我使用
DDP.connect连接时,它会对连接进行身份验证。然而,情况似乎并非如此

在谷歌搜索之后,我遇到了Meteor.call(“登录”)
,但如果用户不使用电子邮件/密码登录,这似乎不起作用

我尝试试用新的
AccountsClient
,但没有取得任何进展

另外一个警告是,我需要它与帐户短信登录和帐户需要在'布拉沃'应用程序创建


关于如何做到这一点有什么想法吗?

鉴于您希望两个应用程序共享一些代码和相同的数据库,您应该看看基于包的体系结构。这将允许您将代码拆分为包,并选择将相关代码导入每个应用程序


谢谢,但我正在使用Webpack组织代码,并且可以与专用NPM模块共享大部分通用代码。我提到了复制<代码> CREATEUSER <代码> FUNC,但是在应用程序之间有点不同,但是足够接近它们来解决问题。我一直想尝试一下。不管怎样,在Alpha上调用
updateDoc
似乎需要两种不同的方法。您可能可以在服务器上将其中的逻辑重构为一个函数(而不是Meteor.Method),该函数由两个Meteor.Methods调用。当Alpha的客户端调用Meteor.Method时,在一个Meteor.Method中检查this.userId,并使用不同的身份验证(签名请求等)从Beta调用第二个Meteor.Method(包装器)。此外,该函数可能会派上用场。是的,这就是我:)updateDoc的
是相同的,因此我想我将使用自己的二次身份验证并使用JWT令牌进行身份验证。然后是方法。我还打开了一个关于Meteor的问题,看看MDG是怎么想的。