如何在重置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 = "";
});
几秒钟后,它会自动登录用户中心页面。这里的问题是,我有不同类型的用户,guest(无法登录),admin(有权管理用户)和staff(app的已验证用户)。 如果客人重置密码,他们会自动登录哪个地方是错误的。
如何禁用自动登录?
顺便说一句,我使用Meteor + React JS和React-router。
这里是我的验证登录尝试的代码,
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