014_Java 手机注册等验证码在服务端的存放位置
Posted -清风辉-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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. 不建议使用关系型数据库,毕竟从硬盘读写数据速度要远低于内存的读写速度.
以上是关于014_Java 手机注册等验证码在服务端的存放位置的主要内容,如果未能解决你的问题,请参考以下文章