私はMeteorアプリケーションで作業しています。私は流星の殻を開いている。私は簡単なテストのための挿入を行う必要がありますが、私は特定のユーザー(私はuserIdを知っている)として認証されているふりをする必要があります。流星殻の中に、userIdを与えられた特定のユーザーとしてログインする方法はありますか?ユーテルシェルから特定のユーザーとしてログインする方法
ありがとうございました!
私はMeteorアプリケーションで作業しています。私は流星の殻を開いている。私は簡単なテストのための挿入を行う必要がありますが、私は特定のユーザー(私はuserIdを知っている)として認証されているふりをする必要があります。流星殻の中に、userIdを与えられた特定のユーザーとしてログインする方法はありますか?ユーテルシェルから特定のユーザーとしてログインする方法
ありがとうございました!
ログインしたユーザーを流星のシェルでシミュレートすることはできません。
私は正確に何をテストしているのか分かりませんが、コレクションの許可/拒否ルールがある場合は、自分のものを実行するメソッドを作成して、必要なユーザーとしてログインしてメソッドを呼び出してみてください。
this.setUserId(userId)
でも実行できます。これは、この接続で受け取った将来のメソッド呼び出しのためにuserIdの値を設定するだけです。
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
そして、この:
は、クライアント上でこれを試してみてください。