短信验证码服务+中正云通讯+nodejs

NOTE.js HTTP  POST请求方式

var http = require('http');  
   
var qs = require('querystring');  
   
var post_data = {  
    uid:'帐号',
    pwd:'密码',
    tos:'号码',
    msg:'【中正云通信】您的验证码是:610912,3分钟内有效。如非您本人操作,可忽略本消息。',
    otime:' '  
};//这是需要提交的数据  
   
   
var content = qs.stringify(post_data);  
   
var options = {  
    hostname: 'service2.winic.org',  
    port: 8003,  
    path: '/service.asmx/SendMessages',  
    method: 'POST',  
    headers: {  
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'  
    }  
};  
   
var req = http.request(options, function (res) {  
    console.log('STATUS: ' + res.statusCode);  
    console.log('HEADERS: ' + xml.stringify(res.headers));  
    res.setEncoding('utf8');  
    res.on('data', function (chunk) {  
        console.log('BODY: ' + chunk);  
    });  
});  
   
req.on('error', function (e) {  
    console.log('problem with request: ' + e.message);  
});  
   
// write data to request body  
req.write(content);  
   
req.end();


NOTE.js HTTP  GET请求方式



var http = require('http');  
   
var qs = require('querystring');  
   
var data = {  
    uid:'帐号',
    pwd:'密码',
    tos:'号码',
    msg:'【中正云通信】您的验证码是:610912,3分钟内有效。如非您本人操作,可忽略本消息。',
    otime:' '
};//这是需要提交的数据  
   
   
var content = qs.stringify(data);  
   
var options = {  
    hostname: 'service2.winic.org',  
    port: 8003,  
    path: '/service.asmx/SendMessages?' + content,  
    method: 'GET'  
};  
   
var req = http.request(options, function (res) {  
    console.log('STATUS: ' + res.statusCode);  
    console.log('HEADERS: ' + xml.stringify(res.headers));  
    res.setEncoding('utf8');  
    res.on('data', function (chunk) {  
        console.log('BODY: ' + chunk);  
    });  
});  
   
req.on('error', function (e) {  
    console.log('problem with request: ' + e.message);  
});  
   
req.end();

中正云网址:http://www.winic.org/index.asp


React + Node.js 实现真实手机号验证码登录通常涉及到前端展示表单、后端发送短信验证以及用户输入验证码后的身份验证。这里是一个简化版的步骤概述: 1. **前端部分**(React): - 使用`axios`库向Node.js API发送请求。 - 创建一个表单组件,包含手机号字段和提交按钮。当用户点击按钮时,触发发送验证码函数。 ```jsx import axios from 'axios'; class LoginForm extends React.Component { handleSubmit = async (event) => { event.preventDefault(); const { phoneNumber } = this.state; try { await sendVerificationCode(phoneNumber); } catch (error) { console.error('Error sending verification code:', error); } } // 省略其他组件逻辑... } // 发送验证码的异步函数 const sendVerificationCode = async (phoneNumber) => { try { const response = await axios.post('/api/send-sms', { phoneNumber }); if (response.data.success) { // 验证码已发送,显示发送成功的提示 } else { // 处理发送失败的情况 } } catch (error) { // 处理网络错误或其他异常 } }; ``` 2. **后端部分**(Node.js with Express and AWS SDK for SMS): - 使用Express设置API,例如使用`jsonwebtoken`处理短链接过期。 - 使用阿里云的SDK(如`ali-oss-sdk`或`ali-acs`)发送短信。 ```javascript const express = require('express'); const sms = require('ali-acs/sms'); const app = express(); app.post('/api/send-sms', async (req, res) => { const { phoneNumber } = req.body; try { const client = new sms.DefaultAcsClient({ // 阿里云AccessKeyId, AccessKeySecret, RegionId等配置 }); const result = await client.sendSms({ PhoneNumber: phoneNumber, MessageTemplateCode: 'SMS_123456', // 根据实际模板ID替换 }); if (result.SendStatus === 'SUCCESS') { // 返回成功信息给前端 res.json({ success: true }); } else { // 处理发送失败的情况并返回错误信息 } } catch (error) { console.error('Error sending SMS:', error); res.status(500).json({ error: 'Failed to send SMS' }); } }); app.listen(3000, () => { console.log('Server is listening on port 3000'); }); ``` 请注意,这只是一个简化的示例,实际项目中需要考虑错误处理、安全性和性能优化。另外,阿里云短信服务的具体操作可能会有额外的步骤,比如购买套餐、创建模板等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值