Express および Passwordless モジュールを使用してパスワードレス認証をセットアップしています。すべてが機能しますが、1 つの問題で立ち往生しています。
配信方法の一部として、外部 API を使用してユーザーに SMS を送信しています。SMS が正しく送信されれば、すべて正常に動作します。ただし、SMS の送信に失敗した場合でもエラーは発生しませんが、API 呼び出しからの応答から、SMS が失敗したことがわかります。失敗した場合、API の応答は次のようになります。
{ 警告: [ { メッセージ: 'メッセージの送信に失敗しました', 番号: '91545454' } ], エラー: [ { コード: 51, メッセージ: '有効な番号が指定されていません' } ], ステータス: '失敗' }
ここで、node/express アプリで、API 応答にステータス = 失敗がある場合、それらを別のページに送信して、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 });
}
);