oidc/sendVerificationEmail.js
function sendVerificationEmail (req, res, next) {
  // skip if we don't need to send the email
  if (!req.sendVerificationEmail) {
    next()

  // send the email
  } else {
    var user = req.user

    var ttl = (settings.emailVerification &&
      settings.emailVerification.tokenTTL) ||
      (3600 * 24 * 7)

    OneTimeToken.issue({
      ttl: ttl,
      sub: user._id,
      use: 'emailVerification'
    }, function (err, token) {
      if (err) { return next(err) }

      var params = {
        token: token._id
      }

      ;[ 'redirect_uri', 'client_id', 'response_type', 'scope' ]
        .forEach(function (key) {
          var value = req.connectParams[key]
          if (value) {
            params[key] = value
          }
        })

      // build email link
      var verifyURL = url.parse(settings.issuer)
      verifyURL.pathname = 'email/verify'
      verifyURL.query = params

      // email template data
      var locals = {
        email: user.email,
        name: {
          first: user.givenName,
          last: user.familyName
        },
        verifyURL: url.format(verifyURL)
      }

      // Send verification email
      mailer.getMailer().sendMail('verifyEmail', locals, {
        to: user.email,
        subject: 'Verify your e-mail address'
      }, function (err, responseStatus) {
        if (err) { }
        // TODO: REQUIRES REFACTOR TO MAIL QUEUE
        next()
      })
    })
  }
}
function sendVerificationEmail (req, res, next) {
  // skip if we don't need to send the email
  if (!req.sendVerificationEmail) {
    next()

  // send the email
  } else {
    var user = req.user

    var ttl = (settings.emailVerification &&
      settings.emailVerification.tokenTTL) ||
      (3600 * 24 * 7)

    OneTimeToken.issue({
      ttl: ttl,
      sub: user._id,
      use: 'emailVerification'
    }, function (err, token) {
      if (err) { return next(err) }

      var params = {
        token: token._id
      }

      ;[ 'redirect_uri', 'client_id', 'response_type', 'scope' ]
        .forEach(function (key) {
          var value = req.connectParams[key]
          if (value) {
            params[key] = value
          }
        })

      // build email link
      var verifyURL = url.parse(settings.issuer)
      verifyURL.pathname = 'email/verify'
      verifyURL.query = params

      // email template data
      var locals = {
        email: user.email,
        name: {
          first: user.givenName,
          last: user.familyName
        },
        verifyURL: url.format(verifyURL)
      }

      // Send verification email
      mailer.getMailer().sendMail('verifyEmail', locals, {
        to: user.email,
        subject: 'Verify your e-mail address'
      }, function (err, responseStatus) {
        if (err) { }
        // TODO: REQUIRES REFACTOR TO MAIL QUEUE
        next()
      })
    })
  }
}
function sendVerificationEmail ( req , res , next ) { // skip if we don't need to send the email if ( ! req . sendVerificationEmail ) { next ( ) // send the email } else { var user = req . user var ttl = ( settings . emailVerification && settings . emailVerification . tokenTTL ) || ( 3600 * 24 * 7 ) OneTimeToken . issue ( { ttl : ttl , sub : user . _id , use : 'emailVerification' } , function ( err , token ) { if ( err ) { return next ( err ) } var params = { token : token . _id } ; [ 'redirect_uri' , 'client_id' , 'response_type' , 'scope' ] . forEach ( function ( key ) { var value = req . connectParams [ key ] if ( value ) { params [ key ] = value } } ) // build email link var verifyURL = url . parse ( settings . issuer ) verifyURL . pathname = 'email/verify' verifyURL . query = params // email template data var locals = { email : user . email , name : { first : user . givenName , last : user . familyName } , verifyURL : url . format ( verifyURL ) } // Send verification email mailer . getMailer ( ) . sendMail ( 'verifyEmail' , locals , { to : user . email , subject : 'Verify your e-mail address' } , function ( err , responseStatus ) { if ( err ) { } // TODO: REQUIRES REFACTOR TO MAIL QUEUE next ( ) } ) } ) } }
Send verification email middleware
Send verification email middleware