如何将validation码发送到node.js中的手机号码? (像nodemailer,但为SMS)

我通过使用nodemailer为我的项目发送确认电子邮件给用户。 它工作正常。

现在我正在寻找从Node.js发送validation码到手机号码,但我不知道该怎么做。

是否有任何模块发送validation码到手机号码,就像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); }); 

大多数运营商提供一个短信网关,您可以发送一封电子邮件,并将其作为短信到达。 如果你想要一个免费的短信发送方式,可以使用你当前的节点制作者实现,这可能是你最好的select。 否则,您可能需要search可以与之集成的付费SMS服务。

这是一个短信网关列表: http : //en.wikipedia.org/wiki/List_of_SMS_gateways

从链接的维基百科页面:例如,要发送到一个通常在美国表示为987-555-0100的号码,可以发送电子邮件9875550100 @短信网关。

为了确保您可以联系到用户移动设备,无论他们的位置和networking如何,您可能需要查看付费服务,例如Nexmo (我工作的人)或Twilio 。

有了这些服务,您可以build立自己的validation(2FA – 双因素validation)工作stream程:

  1. 用户在表单中input他们的电话号码并提交给您的应用程序
  2. 你的应用程序收到电话号码
  3. 您向用户发送带有validation码的短信
  4. 用户收到authentication码
  5. 用户inputvalidation码到表单并提交给您的应用程序
  6. 您的应用程序收到validation码,并根据电话号码(可能使用当前会话电话号码)检查validation码
  7. 如果authentication码是您所期望的那个,那么用户将被validation

或者,您可以使用他们的2FAauthentication产品(Nexmo – Verify或Twilio – Authy来帮助简化这个工作stream程。

使用Nexmovalidation代码将是:

发送validation请求

 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; } }); 

检查validation码

 nexmo.verify.control({request_id: verifyRequestId, cmd: 'cancel'}, function(err, result) { if(err) { console.error(err); } else { console.log(result); } });