最近在深入学习nodejs+express+mysql的全栈开发,我知道现在mysql、express是老旧的,但是个人感觉还是挺成熟的,而且比较熟悉,先学学看,后面再看看kao、MongoDB,下面就来说说我用nodejs和腾讯云的短信sdk开发的验证码服务,大神嘴下留情啊~。
需求
需要实现使用nodejs发送验证码的需求,同一手机号180s只能请求一次。
分析
按步骤走(分析需求的已经形成习惯了^ _ ^)
- 判断手机号码是否在180s内发过,如果发过告知180s内只能发一次,* 否则重新计算验证码。
- 如果手机号码从没发过,计算验证码。
- 存储验证码。
- 发送验证码。
- 验证注册数据中手机号和验证码是否都一致。
实现
发送验证码
先看流程图:
使用了express的session包,安装和使用在下面:
1 | npm install express-session --save |
配置:
1 | app = express(); |
上代码:只是示例啊
1 | selectPhone:(req,res,next) => { //从路由跳到这 |
腾讯云短信nodejs sdk的封装:
1 | var QcloudSms = require("qcloudsms_js"); |
坑
因为使用了postman做接口测试,总是走到了phone不存在这一步,纠结了很久最后发现response会set-Cookie,postman不是浏览器,不会在下次请求的时候携带上这个,所以测试的时候要自己手动设置一下Cookie。
这是response的connect.sid
在request设置Cookie:
如果各位大神还有别的办法,烦请指导。