我正在使用Express和无密码模块来设置无密码身份验证。一切正常,gte,但我被困在一个问题上。
作为交付方法的一部分,我使用外部api将sms发送给用户。如果sms发送正确,则一切正常。但是,如果sms发送失败,仍然没有错误,但是api调用的响应告诉我sms wa失败。如果失败,api响应将如下所示:
{警告:{消息:‘发送消息失败’,编号:'91545454‘},错误:{代码: 51,消息:’未指定有效号码‘},状态:’失败‘}
现在,在我的node/express应用程序中,如果api响应的status = failure,我想将它们发送到另一个页面,在那里我将告诉用户sms失败。
我的代码如下所示:
passwordless.addDelivery(
function(tokenToSend, uidToSend, recipient, callback) {
var smscall = 'MY API CALL URL;
needle.get(smscall, function(error, response) {
if(error) {
console.log(error);
}
if (!error && response.statusCode == 200) {
console.log(response.body);
}
if(response.body.status == 'failure') {
console.log('Failed');
THIS IS WHERE I WOULD LIKE TO REDIRECT USER TO A DIFFERENT TEMPLATE OR RENDER A MESSAGE.
}
callback(error);
});
});requestToken代码如下所示:
router.post('/', passwordless.requestToken(function(user, delivery, callback) {
callback(null, user);
}, { failureRedirect: '/error' }),
function (req, res) {
res.render('verify', { uid: req.passwordless.uidToAuth });
}
);发布于 2016-08-22 20:19:56
只需调用res.render,检查失败的短信状态:
passwordless.addDelivery( function(tokenToSend,uidToSend,recipient,callback) {
var smscall = 'MY API CALL URL;
needle.get(smscall, function(error, response) {
if(error) {
console.log(error);
}
if (!error && response.statusCode == 200) {
console.log(response.body);
}
if(response.body.status == 'failure') {
console.log('Failed');
return res.render('smsFailPage');
}
callback(error);
});});
https://stackoverflow.com/questions/39076790
复制相似问题