84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
注册时同一个用户注册多回,数据库中也出现多条一样的数据,后台已经进行了校验,前台js也限制了两秒提交一次,但是还是会出现多条
前端可以在进入页面的时候设置注册按钮可以点击,在点击发送注册请求的时候先把注册按钮设置成不可点击,等请求回来假设注册失败,则把按钮再设置成可以点击。
数据库中用唯一索引作限制
不知道你是用debouce还是throttle限制两秒提交的
debouce
throttle
比较好的做法是点击注册把按钮禁用掉,等请求返回再在回调函数启用按钮,记得报错的回调也要启用注册按钮
后端数据库字段也要做唯一索引
服务端校验需要作唯一性的判断;前端按钮点击后禁止点击,等待服务端返回后解除禁止点击,或者通过超时方式来实现
注册必须要做唯一验证
数据库加用户名主键唯一验证呀
前端禁用按钮的方案虽然也是必需的,但是这个仅仅只是避免普通用户多次点击而已,不能阻止非浏览器的‘用户’不管服务器接受了多少次重复的请求,必须后端进行处理目的是同一个用户只能注册一次,参考其他回答,主键
参考我的文章Web项目如何防止客户端重复发送请求
前端可以在进入页面的时候设置注册按钮可以点击,在点击发送注册请求的时候先把注册按钮设置成不可点击,等请求回来假设注册失败,则把按钮再设置成可以点击。
数据库中用唯一索引作限制
不知道你是用
debouce
还是throttle
限制两秒提交的比较好的做法是点击注册把按钮禁用掉,等请求返回再在回调函数启用按钮,记得报错的回调也要启用注册按钮
后端数据库字段也要做唯一索引
服务端校验需要作唯一性的判断;前端按钮点击后禁止点击,等待服务端返回后解除禁止点击,或者通过超时方式来实现
注册必须要做唯一验证
数据库加用户名主键唯一验证呀
前端禁用按钮的方案虽然也是必需的,但是这个仅仅只是避免普通用户多次点击而已,不能阻止非浏览器的‘用户’
不管服务器接受了多少次重复的请求,必须后端进行处理
目的是同一个用户只能注册一次,参考其他回答,主键
参考我的文章Web项目如何防止客户端重复发送请求