关于密码输错三次后锁定登录

前言

用户登录输错密码三次将自动锁定该用户,本章用mybatisplus


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据库展示

数据库字段展示

erroeNum为错误次数,isLock:0未锁定,1:锁定

二、使用步骤

1.注入对象

代码如下(示例):

/*
* @since 2021-04-30*/
@RestController
@RequestMapping("/users")
public class UsersController {@AutowiredIUsersService uersService;@AutowiredIPartsService partsService;@AutowiredJwtConfig jwtConfig;

2.编写判定步骤

代码如下(示例):

/*** 登陆页面* @param userName* @return*/@RequestMapping("/login")public Object login(String userName,String userPwd) {Date d = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");QueryWrapper<User> queryWrapper = new QueryWrapper();queryWrapper.eq("userName", userName);//查询用户名是否存在User one = uersService.getOne(queryWrapper);Map<String,Object> map;map = new HashMap<String,Object>();//判断用户是否存在if (one != null) {queryWrapper.eq("userPwd", userPwd);User user = uersService.getOne(queryWrapper);//判断用户名是否存在if(user!=null){//判断用户错误次数是否大于3if (user.getErrorNum()<3) {//判断登录账号是否被锁定if(user.getIsLock()==0){// 省略数据源校验//此处我们已经开始前后端分离,未分离的可不写--开始String token = jwtConfig.getToken(userName + userPwd);if (!StringUtils.isEmpty(token)) {map.put("token", token);}//未分离可不写---结束//登陆成功修改错误次数为0且登陆时间改为当前时间且将锁定码改为0user.setErrorNum(0);user.setLoginTime(sdf.format(d));user.setIsLock(0);uersService.updateById(user);map.put("code",0);map.put("msg","登陆成功");map.put("data",user);}else {map.put("code",1);map.put("msg","用户已锁定,请联系管理");}}else {//调用锁定方法user.setIsLock(1);uersService.updateById(user);map.put("code",1);map.put("msg","用户已锁定,请联系管理");}}else {//错误//修改登录失败次数+1uersService.updNumByUserid(one.getUserId());map.put("code",1);map.put("msg","密码不对");}}else {map.put("code",1);map.put("msg","用户名不对");}return  map;}

注意不要忘记给解锁区域代码修改errorNum为0,只修改isLock
字段为0,后续会出现问题

@RequestMapping("/setUnLock")public Object setUnLock(@RequestParam("userId") Integer userId) {User u = new User();u.setUserId(userId);u.setIsLock(0);u.setErrorNum(0);if (uersService.updateById(u)) {return new Result(0, "解锁成功");}return new Result(1, "解锁失败");}

总结

本次仅为学习编程项目日志,正在学习中的小白一个,欢迎指教

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/62025.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux(ubuntu)用户连续N次输入错误密码进行登陆时,自动锁定X分钟

1、编辑PAM的配置文件 sudo vim /etc/pam.d/login在第二行添加 auth required pam_tally2.so deny3 unlock_time5 even_deny_root root_unlock_time10参数介绍 even_deny_root 也限制root用户&#xff1b; deny 设置普通用户和root用户连续错误登陆的最大次…

用户正确输入密码会累计错误次数,累计5次后用户锁定

问题描述 提示&#xff1a;遇到的问题&#xff1a; 安全要求用户密码输入错误5次&#xff0c;锁定用户600秒 &#xff0c;安全加固后&#xff0c;反馈openssh后登录pam_tally2.so计数不清零问题&#xff0c;用户输入正确密码pam_tall2依旧会增加错误次数 解决方案&#xff1a; …

Ubuntu用户连续N次输入错误密码进行登陆时自动锁定X分钟

1、编辑PAM的配置文件 sudo vim /etc/pam.d/login在第二行添加 auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10参数介绍 even_deny_root 也限制root用户; deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁…

Git Bash输错账号密码如何重新输入

很多时候我们容易在Git Bash操作的时候&#xff0c;不慎输入错误的用户名或密码&#xff0c;此时一直提示: remote: Incorrect username or password ( access token ) 解决办法&#xff1a; 1.打开控制面板&#xff08;快捷打开winR&#xff0c;输入control&#xff09; 2.…

在git上输错密码,解救办法

当输入密码错误后&#xff0c;git会把密码保存在windows的你的当前用户名的缓存中。 我们可以在控制面板中寻找到这个缓存&#xff0c;再删掉就可以了。 首先&#xff0c;打开“控制面板”&#xff0c;再打开“用户账户” 点击管理你的凭据&#xff0c; 在点击windows凭据&am…

windows中git输错密码后不能重新输入的问题

当输入密码错误后&#xff0c;git会把密码保存在windows的你的当前用户名的缓存中。 我们可以在控制面板中寻找到这个缓存&#xff0c;再删掉就可以了。 首先&#xff0c;打开“控制面板”&#xff0c;把“查看方式”改为“大图标”&#xff0c;再打开“用户账户” 会打开“用…

gitHub不能用密码推送了,必须要使用令牌

有一段时间没使用github去push项目了&#xff0c;今天push之后&#xff0c;根据提示输入账号密码&#xff0c;但是失败了&#xff0c;报错如下&#xff1a; support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com…

【Linux】Ubuntu登录账户时多次输错密码锁定账户策略

一、编辑PAM的配置文件 vim /etc/pam.d/sshd (ssh远程登录) vim /etc/pam.d/login (终端窗口登录) 二、在第二行添加 只设置普通用户 auth required pam_tally2.so deny3 unlock_time5 设置普通用户和root用户 auth required pam_tally2.so de…

ChatGPT Prompt实战技巧——Prompt提示词生成器

很多时候&#xff0c;我们不知道去写出一个非常好的提示词&#xff0c;这个时候我们为什么不让ChatGPT提供帮助呢&#xff1f; 简单地说&#xff0c;就是让ChatGPT扮演一个提示词生成专家&#xff0c;帮助你完成/完善/改进你的prompt。 让ChatGPT帮你写提示词&#xff0c;然后…

手把手教您注册/使用Claude

文章目录 注册slack注意事项最近几天出现了一个很火的AI聊天项目——Claude,据说可以媲美ChatGPT,最主要的就是可以很好的解决我们国内的使用痛点,可以完全免费无限制的使用,下面就和大家分享一下正确的注册和使用Claude的流程,仅供参考 注册slack 这里需要注册slack,注册…

零基础手把手教你如何使用Laf免费玩转Midjourney

一、什么是Laf&#xff1f; Laf 是一个 Serverless 框架&#xff0c;提供开箱即用的云函数&#xff0c;云数据库&#xff0c;对象存储等能力&#xff0c;是一个非常干净清爽的开发平台&#xff0c;不仅入门简单&#xff0c;还能像写博客一样写代码&#xff01;最重要的是&…

.net配置nacos,手把手教你分布式配置中心

.net配置nacos&#xff0c;手把手教你分布式配置中心 个人博客地址&#xff1a;note.raokun.top 拥抱ChatGPT&#xff0c;国内访问网站&#xff1a;https://www.playchat.top Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 这么优秀的分布式服务…

《商标与商号法律制度冲突问题研究报告》发布

2022年4月11日&#xff0c;北京阳光知识产权与法律发展基金会正式发布《商标与商号法律制度冲突问题研究报告》。报告历时一年半&#xff0c;是目前针对商标与字号法律制度冲突问题进行的比较系统、全面的研究成果&#xff0c;具有极高的实践价值。   在我国目前的法律制度体…

为什么之前CSDN上免费用的chatgpt不见了

chatgpt刚上线时候&#xff0c;管理风控上是比较松的&#xff0c;基本上通过一些简单的技术手段就能获取大量的账号&#xff0c;并能在限制地区稳定访问使用&#xff0c;甚至单号同时访问也是可以轻松应对&#xff1b;但后面&#xff0c;风控发生了本质上的改变。 ​ 编辑切换…

人工神经网络文献综述,人工神经网络论文文献

BP神经网络方法 。 人工神经网络是近几年来发展起来的新兴学科&#xff0c;它是一种大规模并行分布处理的非线性系统&#xff0c;适用解决难以用数学模型描述的系统&#xff0c;逼近任何非线性的特性&#xff0c;具有很强的自适应、自学习、联想记忆、高度容错和并行处理能力…

美国DARPA204页可解释人工智能文献综述论文《Explanation in Human-AI Systems》

来源&#xff1a;专知 摘要&#xff1a;本文介绍Arxiv上的《Explanation in Human-AI Systems》&#xff0c;一篇关于可解释机器学习的综述&#xff0c;介绍了可解释机器学习的多学科观点、历史研究、模型、关键点等。 可解释AI是现在正火热的科研和工程问题。Arxiv上一篇《Exp…