0

同じデータベースを使用する 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)
});
4

1 に答える 1