Javascript 如何限制用户登录尝试Angular.js(typescript) 我的代码限制用户登录尝试,但刷新页面时会重置用户计数。 login(){ /*仅当用户尝试登录次数少于5次时才尝试登录*/ 如果(此.failedAttempts{ this.router.navigateByUrl('/'); 此.alert.success('欢迎!感谢登录!'); },(错误)=>{ 这个.failedAttempts++; 控制台错误(err); this.alert.error('登录失败。电子邮件或密码无效'); }); /*如果用户达到5次失败尝试,请在5分钟后刷新失败尝试次数并禁用提交按钮*/ }否则如果(this.failedAttemptsthis.failedAttempts=0,this.numLockedOut*300000); setTimeout(()=>this.btnDisable=false,this.numLockedOut*300000); }

Javascript 如何限制用户登录尝试Angular.js(typescript) 我的代码限制用户登录尝试,但刷新页面时会重置用户计数。 login(){ /*仅当用户尝试登录次数少于5次时才尝试登录*/ 如果(此.failedAttempts{ this.router.navigateByUrl('/'); 此.alert.success('欢迎!感谢登录!'); },(错误)=>{ 这个.failedAttempts++; 控制台错误(err); this.alert.error('登录失败。电子邮件或密码无效'); }); /*如果用户达到5次失败尝试,请在5分钟后刷新失败尝试次数并禁用提交按钮*/ }否则如果(this.failedAttemptsthis.failedAttempts=0,this.numLockedOut*300000); setTimeout(()=>this.btnDisable=false,this.numLockedOut*300000); },javascript,angularjs,typescript,mean-stack,login-control,Javascript,Angularjs,Typescript,Mean Stack,Login Control,} 如何在不重新启动页面刷新时钟的情况下settimeout()?您几乎肯定希望在服务器上记录失败的登录尝试,而不是在浏览器中。即使您让这段代码正常工作,对于某些人来说,在浏览器中编辑Javascript并进行任意多的登录尝试也是微不足道的 如果您确实让服务器记录了给定用户名的登录尝试,那么服务器的响应可能会告诉您登录尝试次数已超过允许的数量,并且角度代码可以简单地将该信息传递给用户。这还可以解决在页面访问之间尝试计数不持续的问题。:) 我建议您通过登录API(RESTAPI)实现这一点 当UI

}


如何在不重新启动页面刷新时钟的情况下
settimeout()

您几乎肯定希望在服务器上记录失败的登录尝试,而不是在浏览器中。即使您让这段代码正常工作,对于某些人来说,在浏览器中编辑Javascript并进行任意多的登录尝试也是微不足道的


如果您确实让服务器记录了给定用户名的登录尝试,那么服务器的响应可能会告诉您登录尝试次数已超过允许的数量,并且角度代码可以简单地将该信息传递给用户。这还可以解决在页面访问之间尝试计数不持续的问题。:)

我建议您通过登录API(RESTAPI)实现这一点

当UI向API发送登录请求时,它可以跟踪失败登录尝试的次数

// maintain login failure count against username; maybe in a database or in a Map
// loginFailureCount(username, count, expiryTime)

if (loginIsBlocked(username) {
   return login-response-with-login-blocked-message
} 

if (loginfailure) {
   incrementLoginFailureCount(username, expiryTime);
} else {
   resetLoginFailureCount(username);
}
// send the loginFailureCount(username) in the API response if login failed
现在,API支持失败计数和锁定消息

// In the UI show the failure count or locked message if the login response is a failure

尝试使用localstorage或cookie?如何使用localstorage实现它?服务器端将是无状态的,在您调用rest API时,如何做到这一点?
// In the UI show the failure count or locked message if the login response is a failure