verifyOTP.js 601 B

123456789101112131415161718
  1. const { validation } = require('./validation')
  2. const { compareSync } = require('bcrypt')
  3. const otp = require('../utils/otp')
  4. const response = require('../utils/responseHandler')
  5. module.exports = [
  6. validation((req) => req.body, { otp: 'string' }),
  7. (req, res, next) => {
  8. if (!req.cookies['sidali-otp'] || req.cookies['sidali-otp'] && !compareSync(req.body.otp, req.cookies['sidali-otp']) || !otp.validate({ token: req.body.otp })) {
  9. return response.error(res, {
  10. message: 'OTP tidak valid',
  11. code: 401
  12. })
  13. }
  14. res.clearCookie('sidali-otp')
  15. return next()
  16. }
  17. ]