Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何向node.js中的手机号码发送验证码?(类似于nodemailer,但适用于SMS)_Javascript_Node.js_Sms Gateway - Fatal编程技术网

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

Javascript 如何向node.js中的手机号码发送验证码?(类似于nodemailer,但适用于SMS),javascript,node.js,sms-gateway,Javascript,Node.js,Sms Gateway,我已通过为我的项目使用向用户发送确认电子邮件。它工作得很好 现在我想从node.js向手机号码发送验证码,但我不知道怎么做 是否有任何模块可以向手机号码发送验证码,就像NodeEmailer对电子邮件地址所做的那样?如果没有,我自己怎么做 我使用node.js和mongodb、JavaScript和jQuery开发我的项目。大多数运营商都提供了一个短信网关,您可以向其发送电子邮件并将其作为短信送达。如果您想要一种与当前NodeEmailer实现兼容的免费发送SMS的方式,这可能是您最好的选择。否

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

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

是否有任何模块可以向手机号码发送验证码,就像NodeEmailer对电子邮件地址所做的那样?如果没有,我自己怎么做


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

大多数运营商都提供了一个短信网关,您可以向其发送电子邮件并将其作为短信送达。如果您想要一种与当前NodeEmailer实现兼容的免费发送SMS的方式,这可能是您最好的选择。否则,您可能希望搜索可以集成的付费短信服务

以下是SMS网关的列表:


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

为了确保您能够联系到移动用户,无论他们的位置和网络如何,您可能需要查看付费服务,例如(我为谁工作)或

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

  • 用户在表单中输入其电话号码并提交到您的应用程序
  • 你的应用程序会收到电话号码
  • 您向用户发送带有验证码的SMS
  • 用户收到身份验证代码
  • 用户在表单中输入身份验证代码并提交到您的应用程序
  • 您的应用程序接收验证码并根据电话号码检查验证码(可能使用当前会话电话号码)
  • 如果验证代码是您期望的,则验证用户
  • 或者您可以使用他们的2FA认证产品(Nexmo或Twilio),这将有助于简化此工作流程

    使用Nexmo验证代码是否为:

    发送验证请求 检查验证码 NodeJS包将很容易发送短信。你可以安装为

    npm install springedge
    
    发送sms的代码示例:

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

    对于测试,您应该使用此API,但是您也可以将其作为业务使用。在运行以下代码之前,请确保您已生成有效的API授权密钥,并为此免费注册

    现在,将批量信息的接收者手机号码放置到,您也可以将其用作验证和OTP目的

    在您的项目中安装npm模块,您希望在其中实现SMS系统

    npm安装unirest
    
    获取方法的代码:

    var unirest=require(“unirest”);
    var req=unirest(“获取”https://www.fast2sms.com/dev/bulk");
    请求查询({
    “授权”:“您的API密钥”,
    “发件人id”:“FSTSMS”,
    “消息”:“这是一条测试消息”,
    “语言”:“英语”,
    “路线”:“p”,
    “编号”:“999999999888888877777777”,
    });
    请求标题({
    “缓存控制”:“无缓存”
    });
    请求结束(功能(res){
    如果(res.error)抛出新错误(res.error);
    控制台日志(res.body);
    
    })
    您可以使用该服务。它还提供OTP验证服务。

    一个可能产生良好结果的谷歌查询是
    node.js发送sms
    查看twilio或tropo k谢谢。但是如何使用该nodeEmailer将sms发送到手机号码。从链接的维基百科页面:例如,发送到通常在美国表示的号码A如987-555-0100,可发送电子邮件9875550100@SMS-gateway.nodemailer.createTransport(“SMTP”),{service:“Gmail”,auth:{user:“xxxx@gmail.com,通过:“xxxxxxxx”});邮件选项={from:“Fred Foo”✔ ", // 发件人地址:number@aircel.co.in“,//收件人列表主题:“您好✔“,//主题行文本:“你好,世界”✔“,//纯文本正文html:“你好,世界”✔“//html正文}我尝试了这个…但我不可能收到那个消息…我不确定。我不久前使用了一些美国运营商的短信网关,它起了作用。如果这个免费方法对你不起作用,你可能必须搜索一些短信API提供商。不过他们通常收取很低的费用。这只在印度有效!世界其他地方呢!
    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);
    });