2

ユーザー コレクションにアクティブなフィールドがあり、そのフィールドが false に設定されているユーザーがアプリケーションにログインできないようにしたいと考えています。将来、彼らがログインできるようにすることができるので、彼らのアカウントを削除したり、パスワードを変更したりすることはできません. meteor へのログインを禁止するにはどうすればよいですか?

4

2 に答える 2

1

これは彼らが直接ログインするのを止めませんが、彼らがログインするとすぐにログアウトします。

Meteor.autorun(function(){
  if(typeof Meteor.user().blocked !== "undefined"){
    Meteor.logout(function(){alert('Your account is blocked at the moment, please contact us for more information');});    
  }
});

ブロックされた場所は、設定した無効なアカウント属性です

于 2013-05-20T22:12:01.950 に答える
1

おそらく最も安全な方法は、ユーザーのデータを別のコレクションに移動し、ユーザーのアカウントを削除することです。もちろん、システム内の既存のデータがそのユーザーの ID にリンクされている場合、それは望ましくない場合があります。

ドキュメントを調べたところ、アカウントの無効化フラグを設定できるようなものは見つかりませんでした (これは非常に便利な機能のようですが)。

警告 私はセキュリティの専門家ではありません。次のアドバイスはひどいかもしれません。

ユーザー アカウントをそのままにしておく必要がある場合は、ユーザー アカウントの SRP データを移動または変更することをお試しください。たとえば、文字列'--disabled--''services.password.srp.salt'. これにより、ユーザーが再度ログインできなくなり、文字列を削除するだけでプロセスを元に戻すことができます。

于 2013-05-20T01:49:32.497 に答える