node.js极简发送短信验证码实现

先说下思路,发送验证码的基本步骤为

用户点击发送短信——前端将用户填的手机号发给后端——后端生成随机码,保存随机码,调用短信平台接口,将随机码发给用户——前端将用户填写的随机码与后端保存的对比——告知前端是否正确。

通过node.js如何调用短信平台接口

平台选择,聚合没有试用次数,并且首充要1200元,阿里,腾讯都有免费次数,并且有支持node.js的文档,但验证签名过于麻烦。

所以最后选了云片,10次试用,首充50,虽然没有node的SDK,但文档还算丰富。

最主要的申请简单,企业申请只需营业执照和法人身份证就可以,十几分钟申请下来。

以下为实现基本功能的最简单代码,node运行以下就可以

            var apikey = 'xxx';
            var mobile = phone;
            var text = '【xxxx】您的验证码是1235。如非本人操作,请忽略本短信';
            var sms_host = 'sms.yunpian.com';
            send_sms_uri = '/v2/sms/single_send.json';
            send_sms(send_sms_uri,apikey,mobile,text);
            function send_sms(uri,apikey,mobile,text){
                var post_data = {  
                'apikey': apikey,  
                'mobile':mobile,
                'text':text,
                };
                var content = qs.stringify(post_data);  
                post(uri,content,sms_host);
            }
            
        
            function post(uri,content,host){
                var options = {  
                    hostname: host,
                    port: 443,  
                    path: uri,  
                    method: 'POST',  
                    headers: {  
                        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'  
                    }  
                };
                var req = https.request(options, function (res) {  
        
                    res.setEncoding('utf8');  
                    res.on('data', function (chunk) {  
                        console.log('BODY: ' + chunk);  
                    });  
                }); 
                //console.log(content);
                req.write(content);  
              
                req.end();   

这篇文章只是证明了这个接口可以实现基础功能,具体功能可参考云片官网和这篇文章

https://www.jianshu.com/p/792ca074bbb3

posted @ 2020-10-07 07:18  朱依漾  阅读(486)  评论(0)    收藏  举报