014_Java 手机注册等验证码在服务端的存放位置
1. 当业务量不大时,且时间小于session存活时间时,使用session来进行存储
- session存活时间 : 在tomcat中默认为30分钟,可以根据需要进行修改
2. 当业务量达到一定程度后,不建议使用session,效率会降低,建议使用redis等缓存技术来存储
- redis存储时,手机号作为key,验证码和超时时间作为值.前台设置60秒按钮才能重新点击
- 登录后台接收到前台的手机号时,从redis中get验证码,如果为空,给出提示重新获取
- 如果不为空,判断前台传递来的验证码与redis中的是否一致
- 之后做出登录逻辑
- 使用完的验证码要删除掉,避免重复使用
- 如果第一个用户没收到,60秒后重新发送验证时,更新redis中的验证码
备注 :
1. 可以用手机号码做key,设置过期时间,发短信前先get一下,n秒内能get到值就不允许重复发送 ?
如果这样写,但纯存一个key值肯定后者要覆盖前者,你可以用随机生成的验证码加上token或者id存入redis,但是这样还会有个问题,一旦并发量大,那么redis也是很难去找,浪费效率,所以在生产的时候,你可以加冒号,在redis中自动生成指定的文件夹
2. java 将验证码存放在session是否安全,会不会被截取?
JSP和servlet都运行在服务端,是不用担心被熊孩子截取的
3.手机验证码计费问题?
这是另外一个问题,且待下回详解......
3. 不建议使用关系型数据库,毕竟从硬盘读写数据速度要远低于内存的读写速度.
相关推荐
houmenghu 2020-11-17
我心似明月 2020-11-09
oraclemch 2020-11-06
ltd00 2020-09-12
康慧欣 2020-09-10
waveclouds 2020-09-04
蓝色深海 2020-09-15
jincheng 2020-09-01
思君夜未眠 2020-08-25
取个好名字真难 2020-08-06
歆萌 2020-08-03
阳光之吻 2020-08-03
婷婷小屋 2020-07-28
solarspot 2020-07-28
dxbjfu0 2020-07-26
songbinxu 2020-07-19
83520298 2020-07-06
happinessaflower 2020-07-04