Skip to content
Snippets Groups Projects
verifyToken.js 1.50 KiB
const express = require('express');

const verifyTokenApp = express.Router();

const libs = `${process.cwd()}/libs`;

const log = require(`${libs}/log`)(module);

const VerificationToken = require(`${libs}/models/verificationToken`);

const User = require(`${libs}/models/user`);

verifyTokenApp.get('/:token', (req, res, next) => {
    let token = req.params.token;
    console.log('verificando token');
    VerificationToken.findOne({token: token}, (err, vToken) => {
        if(err) {
            log.error(err);
            return next(err);
        }
        if(!vToken) {
            // TODO: generate new verification token
            console.log('Token não existe');
            res.statusCode = 404;
            return next({msg: 'Token not found', status:404});
        }
        User.findById(vToken.userId, (err, user) => {
            if(err) {
                log.error(err);
                next(err);
            }
            user.verified = true;
            user.save((err) => {
                if(err) {
                    log.error(err);
                    next(err);
                }
            });
            let u = user.toObject();
            delete u.salt;
            delete u.hashedPassword;
            vToken.verified = true;
            vToken.save((err) => {
                if(err) {
                    log.error(err);
                    next(err);
                }
            });
            res.json({msg: 'User verified', user: u});
        });
    });
});

module.exports = verifyTokenApp;