记一次第三方验证码踩过的坑

1. 接手了一个注册验证的一个坑。

起因:一个小时内同一个手机号突然发送了8000多条短信。
原因:测试代码发现确实可以无限发送短信,是因为后台没有限制同一个手机号发送次数的限制。
解决方案:联系短信提供商,限制同一个手机号发送次数,并且在后台添加同一个手机号发送的限制
操作:首先在数据库里的记录发送短信的表里增加一个字段用来记录同一个手机号发送的条数。
发送短信前,首先查看有没有短信发送记录,如果没有,就直接创建一条记录,并且记录发送的次数为1次
如果有发送过的记录,查看最近的一次发送短信的时间距离现在有没有1天
有:更新发送短信的时间,并且重置发送次数为1次
没有:更新发送短信的时间,并且发送次数+1

2. 另外测试的时候还有个发现

起因:如果发送短信验证后,会有一个60秒的下次短信发送倒计时,但是如果用户在倒计时的时间内刷新页面,那么就又可以再次发送短信
解决方案:发送短信的时候,如果是刚发的短信,直接返回距离下次发送的时间,不进行重新发送短信
操作:发送短信前,如果有记录就查看下,这条记录距离现在是否大于60秒
大于:可以发送,并且返回一个距离下次发送还有60秒的时间
小于:查看下距离下次发送还有多长时间,并且这个时间到前端
这样在点击发送完短信的这段时间内,就算刷新页面,时间不够60秒也不会重新发送短信

3. 然后查看短信发送接口发现了另外一个问题

起因:点击发送短信后,会弹出一个验证码,而这个验证码是第三方的拖动滑块验证。所以在验证码验证成功以后,会调一个回调函数,而这个回调函数就是请求的短信接口。
但是这个短信发送的并没有二次验证这个验证码是否正确就进行了短信发送。这样导致了可以使用这个回调函数进行发送短信,不需要经过验证码
解决方案:把验证验证码和短信发送合并为一个请求。如果是使用第三方的就需要进行验证码二次校验。
操作(使用第三方验证码):在验证码验证成功以后,根据第三方返回的参数,一并传给短信发送的接口,短信发送接口在发送短信前,根据第三方提供的函数进行二次校验。
如果成功,可以发送短信。失败则表示验证不成功。

在做注册的时候,一定要加验证码,防止一些奇怪的人进行刷短信或者邮箱接口。
在发送短信前,可以在后台设置再次发送短信的间隔时间,防止用户一直不断的点击发送短信。
如果可以的话,一定要在发送短信前,先验证验证码,这样,可以阻止一些人进行刷发送短信的接口。
如果使用的第三方验证码的话,一定要做好二次验证的功能。
确认提交后一定要判断发送的手机号和短信的验证码是否一致。

### 尚硅谷尚品甄选前端实现与学习资源 #### 一、项目概述 尚硅谷尚品甄选是一个综合性的电商类项目,其前端部分主要基于Vue框架构建。该项目旨在帮助开发者掌握前后端分离开发模式下的实际应用技能[^1]。 #### 二、技术栈分析 尚品甄选项目的前端采用了现代Web开发的技术栈,主要包括以下几个方面: - **Vue.js**: Vue作为核心框架负责页面渲染和状态管理。 - **Vuex**: 对于复杂的数据流场景,使用Vuex来集中管理和共享全局状态[^3]。 - **Axios**: 负责处理HTTP请求,用于从前端向后端发送数据并接收响应[^2]。 - **Element UI / Ant Design Vue**: 提供丰富的UI组件库支持快速搭建界面布局。 #### 三、常见问题及其解决方案 针对验证码图片无法显示的问题,在`api/login.js`以及`utils/request.js`中调整基础路径设置可以有效解决问题。具体操作为修正baseUrl定义位置避免重复拼接造成URL异常情况发生。 ```javascript // utils/request.js 修改示例 import axios from 'axios'; const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API, // 动态读取环境变量中的API地址 timeout: 5000, }); export default service; ``` #### 四、推荐的学习资源 对于希望深入理解尚品甄选项目或者提升自己在类似电商平台上的实战能力的同学来说,可以从以下几处着手获取资料: 1. 官方文档:熟悉Vue官方指南以及其他依赖工具如Vuex、Router等的基础教程; 2. 黑马程序员相关课程:提供完整的Java SE基础知识到高级企业级架构设计思路讲解; 3. 社区讨论与案例分享:参与GitHub开源社区寻找同类项目源码研究他人优秀实践方法; #### 五、总结建议 初学者应先打好HTML/CSS/JavaScript三大基石后再逐步接触MVVM思想进而过渡至更复杂的单页应用程序(SPA)制作流程当中去。随着经验积累适时引入状态管理模式优化大型系统的可维护性和扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值