方案一:
点击获取验证码–>后台生成验证码,发送短信,并返回md5加密后的验证码到前端–>用户输入验证码,md5加密与后台返回的md5加密验证码比较,校验。
优点:简单,便捷
缺点:用户刷新即失效,存到cookie中,也依然有丢失的风险。方案二:
点击获取验证码–>后台生成验证码,发送短信,并返存储到缓存中,如:redis(key:手机号;value:验证码)–>用户输入验证码,传回手机号和验证码,后台校验。
优点:安全,独立
缺点:繁琐,如项目中没有使用缓存,单独为了验证码启用缓存,大材小用
以上,解决方案应随项目级别、研发能力、功能优先级而定。