我正在使用Node Js在项目中创建一个用户帐户。用户注册时,用户必须提供其name
,mobile
和password
。给出手机号码后,应使用2FA,SMS OTP进行身份验证。
在这里,我不使用Twillo或其他产品,因为客户端使用了具有用户名和密码的本地SMS网关。但是那里的文档仅支持C#,php和Java。没有Node Js。但是他们在following link中以WSDL的形式提供Web服务。我可以使用该Web服务通过Node Js发送SMS OTP吗?请帮忙。预先感谢。
这是我的用户模型和用户控制器:
用户模型
var mongoose = require('mongoose');
var userSchema = new mongoose.Schema(
{
name: {type: String, required: true, max: 25, trim: true},
mobile: {type: String, required: true, unique:true, trim: true, sparse: true},
password: {type: String, required: true, min: 6},
is_verified:{type: Boolean, default:0}, //<<<<<<<<<<<<<<<< After SMS OTP, will true
},
{
timestamps:true
});
mongoose.model('User', userSchema);
module.exports = mongoose.model('User');
用户的控制器
router.post("/register", upload.single('image'), function (req, res, next)
{
// All validation Here
var hashedPassword = bcrypt.hashSync(req.body.password, 10);
const objUser = new User(
{
name : req.body.name,
mobile : req.body.mobile,
password : hashedPassword
});
soap.createClient(wsdlUrl, function(err, soapClient)
{
// we now have a soapClient - we also need to make sure there's no `err` here.
if (err)
{
return res.status(500).json(err);
}
soapClient.user({
customer : 1,
id : 1,
password : 'username',
username : 'password'
}, function(err, result)
{
if (err)
{
return res.status(500).json(err);
}
return res.json(result);
});
});
// <<<<<<<<<< Here I want to send SMS
objUser.save((err) =>
{
if (err)
{
return next(err);
}
res.status(201).send(" The registration ok. No problems")
);
});
})