如何解决nodejs中的Otp验证?
我想通过短信和电子邮件向注册网络应用的用户发送otp,以验证他们的电子邮件和电话号码。 是否有任何用于发送和验证 OTP 的 NPM 包,还是我应该编写自己的代码?
解决方法
是的,有一个名为 sendotp 的包。这仅用于通过 SMS 发送 OTP。
在 npmjs 中,您可以找到不同的示例来完成您的任务。
但我的建议是实施您自己的方法来发送和验证 OTP 更好。因为通过使用包,您可能会获得根本不需要的额外方法,或者没有实现您想要的功能。
,您可以使用 Nodemailer 进行电子邮件验证,使用 twiolio 进行短信验证。创建一个随机字符串并通过短信或电子邮件将其发送给用户,如果使用 mongodb,您可以检查 otp 的创建时间,从中您可以检查发送后经过的时间,但您可以设置过期时间。
,您可以使用 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' }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。