次の記事に基づいて別のユーザーとしてログインするために、私のMeteorアプリケーションで偽装メソッドを構築しました:https://dweldon.silvrback.com/impersonating-a-user。私はまた、インターコムの統合(チャットウィジェットとユーザ追跡)を持っています。 Intercomアプリケーションからのトラッキングを避けるために、別のユーザー(偽装)としてログオンしているときに、インターコムウィジェットがクライアント側で無効にできるようにしたいと考えています。私は、任意のユーザーの偽装メソッドを起動しているときに、ユーザープロファイルの偽装ブール型プロパティを作成し、それをtrueに更新することを考えていました。問題は、偽装メソッドが終了したときにfalseに設定する方法がわかりません。記事によると、ブラウザを手動で更新すると偽装を停止することができます。私を助けて、最高のアプローチを見つけることができますか?流星の偽装ユーザー
0
A
答えて
3
我々は2つの部分でこれを解決することができます:私たちは、ユーザーを偽装起動すると
、誰を偽装している人を追跡します。のは、最初のチュートリアルでimpersonate
方法を拡張することでこれをやってみましょう:私たちはあなたのUIに今(ブラウザの更新に起こるべき)新しいログイン
Meteor.onLogin(() => {
Meteor.call('clearImpersonation', (err, result) => {
if (err) console.log('Error clearing impersonation: ',err);
});
});
Meteor.methods({
clearImpersonation(){
const user = Meteor.users.findOne(this.userId);
if (user && user.impersonating) Meteor.users.update(user._id,{ $unset: 'profile.impersonating' });
return;
}
});
をリッスンする必要が
Meteor.methods({
impersonate: function(userId) {
check(userId, String);
if (!Meteor.users.findOne(userId))
throw new Meteor.Error(404, 'User not found');
if (!Meteor.user().isAdmin)
throw new Meteor.Error(403, 'Permission denied');
Meteor.users.update(this.userId, { $set: { 'profile.impersonating': userId }});
this.setUserId(userId);
}
});
次のあなた
関連する問題
- 1. 流星:ユーザーのログインが必要な流星のデバッグ方法
- 2. ベストメソッド流星/流星塊でフォロワーを実装する
- 3. Identityserver3 - ユーザーの偽装
- 4. 流星の流星での流星の非同期
- 5. 流星繊維エラー - 流星
- 6. 流星のパスワードを忘れた実装
- 7. サーバー上の流星ユーザーの検索
- 8. Windowsサービスの偽装ユーザー
- 9. Silverlightユニットテストの偽装ユーザー
- 10. 流星の流星を使用中の流星の関数の多重アクセス
- 11. 流星(リアクト):流星Appでアクセスローカルパッケージコンポーネント
- 12. 流星
- 13. 流星
- 14. 流星 -
- 15. Identity Serverとユーザー偽装
- 16. 流星のオーディオコール
- 17. 流星1.3インポートモジュールエラー
- 18. ブートストラップは、流星
- 19. 流星 - コンテンツ
- 20. 流星コレクションクエリが
- 21. 流星リストアイテム数
- 22. 流星鉄ルータ
- 23. angular2-流星CHANGEPASSWORD
- 24. 流星Iron.Routerダイナミックテンプレート
- 25. 流星ブレッドクラム
- 26. 流星オートコンプリートサーバー側
- 27. 流星アップ(MUP)
- 28. EasySearch流星
- 29. 流星:カウント値
- 30. 流星アニメーション
こんにちはMichealさん、ありがとうございますが、onConnectionとMeteor.user()またはMeteor.userId()メソッドに問題があるようです。どちらもMeteorのメソッド呼び出しまたはパブリケーションでのみ呼び出すことができます。これらのメソッドをonConnectionメソッドで使用すると、次のエラーが発生します。onConnectionコールバックの例外:エラー:Meteor.userIdは、メソッド呼び出しまたはパブリケーションでのみ呼び出すことができます。 – wlodi83
ああ、申し訳ありません。偽装をクリアする方法を追加しました。 –
こんにちはMicheal、このアプローチはまだ動作しません。 Meteor.user()、this.userIdおよびMeteor.userId()メソッドは、clearImpersonationメソッドでnullを返します。 – wlodi83