Пример #1
0
router.put('/emailVerification', respondsToJSON, function(req, res, next) {

    models.pseudoUsers.findById(req.body.userId).then(function(user) {
        if (user.emailVerification === req.body.verificationCode) {
            user.update({
                emailVerified: true
            }).then(function(user) {
                if (req.session.fomdId) {
                  console.log(user);
                    models.temporaryForms.findById(req.session.formId).then(function(form) {
                        form.update({
                            pseudoUserId: user.id,
                            email: user.email
                        }).catch(function(err) {
                            console.error(err);
                        });
                    });
                }
                return res.json({
                    verified: true
                });
            }, function(err) {
                return handleError(err, next);
            });
        } else {
            res.json({
                verified: false
            });
        }
    }, function(err) {
        return handleError(err, next);
    });
});
Пример #2
0
router.post('/emailVerification', respondsToJSON, function(req, res, next) {
    var randomHash = crypto.randomBytes(4).toString('hex');

    if (!req.body.email || req.body.email.length < 3) {
        return handleError({
            message: 'Not a valid email address!',
            status: 400
        }, next);
    }

    models.pseudoUsers.findOrCreate({
            where: {
                email: req.body.email
            }
        })
        .spread(function(pUser, created) {

            if (created || !pUser.emailVerified) {

                //User was created or not verified
                pUser.update({
                    emailVerification: randomHash
                }).then(function(user) {
                    mailer.verifyEmailNoLink(req.body.email, randomHash, function(err) {
                        if (err) {
                            user.destroy({
                                force: true
                            });
                            return handleError(err, next);
                        }
                        return res.json({
                            pUserId: user.id
                        });
                    });
                }, function(err) {
                    return handleError(err, next);
                });

            } else {

              // User already verified - update form with the userID and email
                models.temporaryForms.findById(req.session.formId).then(function(form) {
                    form.update({
                        pseudoUserId: pUser.id,
                        email: pUser.email
                    }).catch(function(err) {
                        return handleError(err, next);
                    });
                });

                // res json that user verified
                res.json({
                    verified: true,
                    pUserId: pUser.id
                });
            }
        }).catch(function(err) {
            return handleError(err, next);
        });
});