以前に、remote DDP serverのデータベースでユーザー管理を行う方法を書きました。
この記事でも書いた通り、OAuthなどcallback URLを使う認証の場合はうまくいかないので、以下のように考えてみました。
1. メインアプリサーバーで、ユーザー情報を_idでpublishできるようにしておく。
2.サブアプリでの認証時にサブアプリサーバーでメインアプリにアカウントがあることを確認する。
確認できなければ作成しない。確認できたらアカウントにメインアプリのアカウントの_idを紐付けする(mainId)。
3. サブアプリのクライアントに以下のコードを入れる。
share.remote = DDP.connect 'http://mainApp.meteor.com/' share.users = new Meteor.Collection 'users', share.remote share.user = -> share.users.findOne() Tracker.autorun -> user = Meteor.user() share.remote.subscribe 'remoteuser', user.mainId
で、後は、Meteor.user, Meteor.usersの代わりにshare.user, share.usersを使います。
如何でしょう?
実際に書いたコードはちょっと違ったことをしているので上記アイデア自体はまだ試していませんが、うまく行きそうな気がしています。