nodejs中的Otp验证?

ocebsuys  于 2023-05-28  发布在  Node.js
关注(0)|答案(3)|浏览(225)

我想通过短信和电子邮件发送otp给正在**注册web应用的用户,以验证他们的电子邮件和电话号码。**是否有任何NPM包用于发送和验证OTP,或者我应该编写自己的代码?

ztyzrc3y

ztyzrc3y1#

是的,有一个名为sendotp的软件包。这仅用于通过SMS发送OTP。
在npmjs中,你可以找到不同的例子来完成你的任务。
但我的建议是实现自己的发送和验证OTP的方法更好。因为通过使用包,你可能会得到你根本不想要的额外方法,或者没有你想要的功能实现。

mepcadol

mepcadol2#

您可以使用Nodemailer进行电子邮件验证,使用twiolio进行短信验证。创建一个随机字符串并通过sms或email发送给用户,如果使用mongodb,你可以检查otp是什么时候创建的,从那里你可以检查发送后经过了多少时间,但是你可以设置expirey。

8qgya5xd

8qgya5xd3#

您可以使用 msg91 将otp发送给用户。
登录msg91并获取template_id和API_key。
使用msg91 API与axios.

const axios = require('axios');

async function  sendOtpTOUser(phone) {
 const  template =  "template _id";
 const  apiKey = "api_key";         
 const sendotp = "https://api.msg91.com/api/v5/otp?template_id="+template+"&mobile="+phone+"&authkey="+apiKey;
                 let request_options1 = {
                  method: 'get',
                  url: sendotp
              };  
     
  let otpResponse = await axios(request_options1);
  console.log(otpResponse.data)  
  return otpResponse.data;              
}

它将返回对象为

{ request_id: '3166686e7867313634383535', type: 'success' }

相关问题