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