如何在重置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