Meteor 是否可以将当前用户id传递到远程DDP服务器';是“this.userId”?

Meteor 是否可以将当前用户id传递到远程DDP服务器';是“this.userId”?,meteor,ddp,Meteor,Ddp,我有两个meteor应用程序使用相同的数据库,一个是移动应用程序(主应用程序),另一个是桌面应用程序 在桌面应用程序中,我想调用远程移动方法来创建列表,这样我就不必重复代码'listing.create' 我假设我在桌面应用程序上登录的Meteor.userId在调用远程移动方法时会被传输,但这不是真的,因为它是未定义的 我也有Oauth和Email auth,使用Oauth登录似乎不是一个简单的方法(通过调用'login'登录密码) 既然远程方法没有登录就失败了,那么调用它的最佳方法是什么?我

我有两个meteor应用程序使用相同的数据库,一个是移动应用程序(主应用程序),另一个是桌面应用程序

在桌面应用程序中,我想调用远程移动方法来创建列表,这样我就不必重复代码
'listing.create'

我假设我在桌面应用程序上登录的
Meteor.userId
在调用远程移动方法时会被传输,但这不是真的,因为它是未定义的

我也有Oauth和Email auth,使用Oauth登录似乎不是一个简单的方法(通过调用'login'登录密码)

既然远程方法没有登录就失败了,那么调用它的最佳方法是什么?我想我可以将userId作为字符串传入,但这会使该方法遭到黑客攻击

Mobile server, m.foo.com, MONGO_URL bar.com

Meteor.methods({

  'Listing.create': function(){

    if (!this.userId) throw new Meteor.Error(503, 'No user account');

    ...

    db.listings.insert(...);
  }

})

// on client
Meteor.userId() // 1234


对。该方法与此答案的思路相同:

唯一的区别是使用
ddp工具
而不是使用
Meteor.call(“login”)。
将参数与登录类型匹配


如果登录是Facebook或其他OAuth登录,则必须使用
loginToken
而不是普通的用户名和密码。

谢谢!我会在周一尝试。通过一些额外的谷歌搜索,似乎一旦我登录到桌面应用程序,我就可以使用
var-token=Accounts.\u storedLoginToken()
并将其传递到Meteor.call(“登录”{resume:token},…?
Desktop server, foo.com, MONGO_URL bar.com

MobileDDP = DDP.connect('http://m.foo.com')

MobileDDP.call('Listing.create', function(err, res) {
  console.log(err, res)
});