2016-10-02 2 views
2

私はMeteorアプリケーションで作業しています。私は流星の殻を開いている。私は簡単なテストのための挿入を行う必要がありますが、私は特定のユーザー(私はuserIdを知っている)として認証されているふりをする必要があります。流星殻の中に、userIdを与えられた特定のユーザーとしてログインする方法はありますか?ユーテルシェルから特定のユーザーとしてログインする方法

ありがとうございました!

答えて

1

ログインしたユーザーを流星のシェルでシミュレートすることはできません。

私は正確に何をテストしているのか分かりませんが、コレクションの許可/拒否ルールがある場合は、自分のものを実行するメソッドを作成して、必要なユーザーとしてログインしてメソッドを呼び出してみてください。

this.setUserId(userId)でも実行できます。これは、この接続で受け取った将来のメソッド呼び出しのためにuserIdの値を設定するだけです。

0

meteor shellを使用すると、特定のユーザーセッションに結びついていないサーバーにアクセスできます。代わりに、クライアントからユーザーを偽装する(ブラウザでコンソールを開く)必要があります。

Meteor.methods impersonate: (query) -> throw new Meteor.Error(403, "Permission denied") unless Meteor.user().isAdmin u = Meteor.users.findOne(query) throw new Meteor.Error(404, "User not found") unless u @setUserId u._id return u

そして、クライアント上でimpersonateUser('someUserId')を実行します。サーバー上の

@impersonateUser = (userId) -> Meteor.call "impersonate", userId, (err,res) -> if err console.log err else Meteor.connection.setUserId res._id console.log 'Now impersonating ' + res.emails[0].address

そして、この:

は、クライアント上でこれを試してみてください。

関連する問題