Meteorアカウント - パスワードパッケージでパスワードをリセットした後にログインを無効にするにはどうすればいいですか?数秒後Meteorアカウントのパスワードをリセットした後にログインを無効にする - パスワード
ゲストのメールにリセットのリンクを送信した後、私はパスワードをリセットするには、このコードを持って、
Accounts.resetPassword(this.props.params.token, this.refs.password.value.trim(),(err) => {
if(err){
Bert.alert(err, 'danger', 'growl-top-right');
} else {
Bert.alert("Password is successfully changed.", 'success', 'growl-top-right');
}
this.setState({resetPassword:false});
this.refs.password.value = "";
});
、それはダッシュボードページへのユーザーのログインオートます。ここでの問題は、ユーザーの種類、ゲスト(ログインできない)、管理者(ユーザーの管理にアクセスできるユーザー)、スタッフ(アプリケーションの確認ユーザー)です。 ゲストがパスワードをリセットした場合、自動的にログインしていますが間違っています。
自動ログインを無効にするにはどうすればよいですか?
ところで、私はMeteor + React JSをReact-routerと併用しています。ここで
あなたは、コールバックに渡されたオブジェクトのuser
がゲストで、もしそうなら、falsy値を返すかどうかをテストするためにAccountsServer#validateLoginAttempt(func)
メソッドを使用することができます
Accounts.validateLoginAttempt((data)=>{
if(data.error)
return data.error;
if(!data.user.emails[0].verified)
throw new Meteor.Error(403, 'Verify email account first');
if((data.user.profile && data.user.profile.retired) || (data.user.roles.company.includes("guest")))
throw new Meteor.Error(403, 'Account must be accepted by an admin');
else
return true;
});
私はそれを行う方法があると確信していますが、それはあなたのアプリが適切に計画されていないように聞こえます。すべてのユーザーをログインできるようにして、その権限レベルに基づいて機能を制限できないのはなぜですか?検証されたアドレスを持っているかどうかに基づいて、アクセス許可を設定する代わりに。 – d4nyll
ゲストは、企業アカウントを使用して登録できます。だから公開ページに登録することができました。ログインする前に登録ユーザーがスタッフであることを確認する必要があります。 – JMA