Welcome to Tracman!
To complete your registration, follow this link and set your password:
${env.url}/settings/password/${token}
Hi,
Did you request to reset your Tracman password? If so, follow this link to do so:
${env.url}/settings/password/${token}
If you didn't initiate this request, just ignore this email.
` }).then(function(){ req.flash('success', `An email has been sent to ${req.body.email}. Check your email for instructions to reset your password. `); res.redirect('/'); }).catch(function(err){ next(err); }); }); } }); }); // Social app.get('/login/:service', function(req,res,next){ var service = req.params.service; if (service==='google'){ var sendParams = {scope:['profile']}; } if (!req.user) { // Social login passport.authenticate(service, sendParams)(req,res,next); } else if (!req.user.auth[service]) { // Connect social account passport.authorize(service, sendParams)(req,res,next); } else { // Disconnect social account req.user.auth[service] = undefined; req.user.save(function(err){ if (err){ mw.throwErr(err,req); } else { req.flash('success', `${mw.capitalize(service)} account disconnected. `); } res.redirect('/settings'); }); } }); app.get('/login/:service/cb', function(req,res,next){ var service = req.params.service; if (!req.user) { passport.authenticate(service, loginOutcome)(req,res,next); } else { req.flash('success', `${mw.capitalize(service)} account connected. `); req.session.next = '/settings'; passport.authenticate(service, connectOutcome)(req,res,next); } }, loginCallback); // Old google auth // app.get('/auth/google', passport.authenticate('google', { scope: [ // 'https://www.googleapis.com/auth/plus.login', // 'https://www.googleapis.com/auth/plus.profile.emails.read' // ] })); // app.get('/auth/google/callback', passport.authenticate('google', { // failureRedirect: '/', // failureFlash: true, // successRedirect: '/', // successFlash: true // } )); // Android auth //TODO: See if there's a better method app.get('/auth/google/idtoken', passport.authenticate('google-id-token'), function (req,res) { if (!req.user) { res.sendStatus(401); } else { res.send(req.user); } } ); }; // passport.use(new GoogleStrategy({ // clientID: env.googleClientId, // clientSecret: env.googleClientSecret, // callbackURL: env.url+'/auth/google/callback', // passReqToCallback: true // }, function(req, accessToken, refreshToken, profile, done) { // // Check for user // User.findOne({googleID: profile.id}, function(err, user){ // // Error // if (err) { console.log('Error finding user with google ID: '+profile.id+'\n'+err); } // // User found // if (!err && user !== null) /* Log user in */ { // if (!user.name) { user.name=profile.displayName; } // user.lastLogin = Date.now(); // user.save(function (err, raw) { // if (err) { throwErr(err,req); } // }); done(null, user); // } // // User not found // else /* create user */ { // user = new User(); // user.googleID = profile.id; // user.name = profile.displayName; // user.email = profile.emails[0].value; // user.slug = slug(profile.displayName).toLowerCase(); // user.created = Date.now(); // user.lastLogin = Date.now(); // // user.settings = { units:'standard', defaultMap:'road', defaultZoom:11, showSpeed:false, showTemp:false, showAlt:false, showStreetview:false }, // // user.last = { lat:0, lon:0, dir:0, alt:0, spd:0 }, // // user.isPro = false; // // user.isAdmin = false; // var cbc = 2; // var successMessage, failMessage; // // Generate slug // (function checkSlug(s,cb) { // //console.log('checking ',s); // User.findOne({slug:s}, function(err, existingUser){ // if (err) { console.log('No user found for ',slug,':',err); } // if (existingUser){ // s = ''; // while (s.length<6) { // s+='abcdefghijkmnpqrtuvwxy346789'.charAt(Math.floor(Math.random()*28)); // } // checkSlug(s,cb); // } else { cb(s); } // }); // })(user.slug, function(newSlug){ // user.slug = newSlug; // if (cbc>1) /* waiting on other calls */ { cbc--; } // else { done(null, user, { success:successMessage, failure:failMessage }); } // }); // // Generate sk32 // crypto.randomBytes(32, function(err,buf) { // if (err) {console.log('Unable to get random bytes:',err);} // if (!buf) {console.log('Unable to get random buffer');} // else { // user.sk32 = buf.toString('hex'); // user.save(function(err) { // if (err) { // console.log('Error saving new user '+err); // var failMessage = 'Something went wrong creating your account. Would you like to report this error?'; // } else { successMessage = 'Your account has been created. Next maybe you should download the android app. ' } // if (cbc>1) /* waiting on other calls */ { cbc--; } // else { done(null, user, { success:successMessage, failure:failMessage }); } // }); // } // }); // } // }); // })); // passport.use(new GoogleTokenStrategy({ // clientID: env.googleClientId // }, function(parsedToken, googleId, done) { // User.findOne({googleID:googleId}, function(err, user) { // if (err) { // console.log('Error finding user for gToken login with google profile ID: '+googleId+'\n'+err); } // if (!err && user !== null) { // Log in // user.lastLogin = Date.now(); // user.save(function (err) { // if (err) { // console.log('Error saving user\'s lastLogin for gToken login with google profile ID: '+googleId+'\n'+err); } // }); // return done(err, user); // } else { // No such user // done(null, false); // } // }); // }));