首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在node.js中向手机号码发送验证码?(与nodemailer类似,但用于SMS)

如何在node.js中向手机号码发送验证码?(与nodemailer类似,但用于SMS)
EN

Stack Overflow用户
提问于 2013-02-09 20:24:42
回答 5查看 26.4K关注 0票数 17

我已经为我的项目使用nodemailer向用户发送了确认电子邮件。它工作得很好。

现在我想通过node.js向手机号码发送验证码,但我不知道该怎么做。

有没有像nodemailer那样给手机发送验证码的模块?或者,如果不是,我自己怎么做呢?

我使用node.js和mongodb、JavaScript和jQuery开发我的项目。

EN

回答 5

Stack Overflow用户

发布于 2013-02-09 22:48:28

大多数运营商都提供了SMS网关,您可以将电子邮件发送到该网关,然后将其作为SMS到达。如果您想要一种与当前的nodemailer实现一起工作的免费发送SMS的方式,这可能是您的最佳选择。否则,您可能需要搜索可以与集成的付费SMS服务。

以下是短信网关的列表:http://en.wikipedia.org/wiki/List_of_SMS_gateways

从链接的维基百科页面:例如,要发送到在美国通常表示为9875550100的号码,您可以发送电子邮件到9875550100@SMS-gateway。

票数 5
EN

Stack Overflow用户

发布于 2017-07-13 15:29:01

NodeJS包https://www.npmjs.com/package/springedge将很容易发送短信。您可以安装为

代码语言:javascript
复制
npm install springedge

发送短信代码示例:

代码语言:javascript
复制
// 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);
});
票数 5
EN

Stack Overflow用户

发布于 2017-01-18 19:16:12

为了确保你可以联系到用户的手机,无论他们在哪里和网络,你可能会不得不考虑付费服务,如Nexmo (我为之工作)或Twilio

使用这些服务,您可以构建自己的验证(2FA -双因素身份验证)工作流:

  1. 用户在表单中输入他们的电话号码并向您的应用程序提交
  2. 您的应用程序收到电话号码
  3. 您向用户发送带有授权码的短信
  4. 用户接收授权码

< code >H111用户在表单中输入授权码并将其提交到您的应用< code >H212

  1. 您的应用程序会收到授权码,并根据电话号码检查该授权码(可能使用当前会话电话号码)
  2. 如果授权码是您期望的代码

或者,您可以使用他们的2FA身份验证产品(Nexmo - Verify或Twilio - Authy )来帮助简化此工作流程。

使用Nexmo验证代码为:

发送验证请求

代码语言:javascript
复制
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;
  }
});

检查验证码

代码语言:javascript
复制
nexmo.verify.control({request_id: verifyRequestId, cmd: 'cancel'}, function(err, result) {
  if(err) { console.error(err); }
  else {
    console.log(result);
  }
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14788125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档