同じデータベースを使用する 2 つの meteor アプリがあります。1 つはモバイル アプリ (プライマリ) で、もう 1 つはデスクトップ アプリです。
デスクトップ アプリからリモート モバイル メソッドを呼び出してリストを作成し、コードを複製する必要がないようにしたいと考えています'Listing.create'
。
リモート モバイル メソッドの呼び出し中に、デスクトップ アプリにログインしたものが転送されると想定していましたMeteor.userId
が、これは未定義であるため、正しくありません。
私は Oauth と電子メール認証も持っていますが、OAuth を使用してログインする簡単な方法はないようです (「ログイン」呼び出しによるログインはパスワードに適しています)。
ログインせずに失敗するため、リモートメソッドを呼び出す最良の方法は何ですか? 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
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)
});