我在我的项目中使用nodemailer发送确认电子邮件给用户,目前工作正常。
现在我想从node.js向手机号码发送验证码,但是我不知道如何做到这一点。
是否有任何模块可以像nodemailer一样向移动电话号码发送验证码?如果没有,我该如何自己实现呢?
我正在使用node.js和mongodb、JavaScript和jQuery开发我的项目。
我在我的项目中使用nodemailer发送确认电子邮件给用户,目前工作正常。
现在我想从node.js向手机号码发送验证码,但是我不知道如何做到这一点。
是否有任何模块可以像nodemailer一样向移动电话号码发送验证码?如果没有,我该如何自己实现呢?
我正在使用node.js和mongodb、JavaScript和jQuery开发我的项目。
NodeJS软件包https://www.npmjs.com/package/springedge将帮助您轻松地发送短信。您可以按如下步骤进行安装:
npm install springedge
发送短信的代码示例:
// send sms
var springedge = require('springedge');
var params = {
'apikey': '', // API Key
'sender': 'SEDEMO', // Sender Name
'to': [
'919019xxxxxxxx' //Moblie Number
],
'message': 'test+message'
};
springedge.messages.send(params, 5000, function (err, response) {
if (err) {
return console.log(err);
}
console.log(response);
});
您可以使用他们的两步验证产品(Nexmo - Verify 或 Twilio - Authy)来简化此工作流程。
使用 Nexmo 进行验证的代码如下:
var Nexmo = require('nexmo');
var nexmo = new Nexmo({apiKey: API_KEY, apiSecret: API_SECRET});
var verifyRequestId = null; // use in the check process
nexmo.verify.request({number: TO_NUMBER, brand: APP_NAME}, function(err, result) {
if(err) { console.error(err); }
else {
verifyRequestId = result. request_id;
}
});
nexmo.verify.control({request_id: verifyRequestId, cmd: 'cancel'}, function(err, result) {
if(err) { console.error(err); }
else {
console.log(result);
}
});
在 Node.js 中向任意号码发送消息的最简单方法之一是使用一个名为 fast-two-sms 的库。
这个库很容易集成到你的项目中,而且价格也非常便宜,在注册后还提供免费信用额度。
以下是如何集成此库的方法:
首先安装它:
npm install fast-two-sms
or
yarn add fast-two-sms
const fast2sms = require('fast-two-sms')
var options = {authorization : YOUR_API_KEY , message : 'YOUR_MESSAGE_HERE' , numbers : ['9999999999','8888888888']}
fast2sms.sendMessage(options)
别忘了从他们的网站生成一个api密钥。
或者
您也可以使用Firebase身份验证。
如果要进行测试,您应该使用此API https://www.fast2sms.com,但您也可以将其用作业务。在运行以下代码之前,请确保您已生成有效的API授权密钥,并且您应该免费注册。
现在将接收者的手机号码放置在批量消息中,您也可以将其用于验证和OTP目的。
在您想要实现SMS系统的项目中安装npm模块。
npm install unirest
GET方法的代码:
var unirest = require("unirest");
var req = unirest("GET", "https://www.fast2sms.com/dev/bulk");
req.query({
"authorization": "YOUR_API_KEY",
"sender_id": "FSTSMS",
"message": "This is a test message",
"language": "english",
"route": "p",
"numbers": "9999999999,8888888888,7777777777",
});
req.headers({
"cache-control": "no-cache"
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
POST方法的代码:
var unirest = require("unirest");
var req = unirest("POST", "https://www.fast2sms.com/dev/bulk");
req.headers({
"authorization": "YOUR_API_KEY"
});
req.form({
"sender_id": "FSTSMS",
"message": "This is a test message",
"language": "english",
"route": "p",
"numbers": "9999999999,8888888888,7777777777",
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
node.js 发送短信
。 - Pekka