123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- var _ = require('lodash');
- var async = require('async');
- var crypto = require('crypto');
- var nodemailer = require('nodemailer');
- var passport = require('passport');
- var User = require('../models/user');
- var secure = require('../config/secure');
- /********** GET / Login **************/
- exports.getLogin = function (req, res) {
- if (req.user) {
- return res.redirect('/');
- }
- res.render('account/login', {
- title: 'Login'
- });
- };
- /********** POST / Login **************/
- exports.postLogin = function(req, res, next) {
- req.assert('email', 'Email is not valid').isEmail();
- req.assert('password', 'Password cannot be blank').notEmpty();
- var errors = req.validationErrors();
- if (errors) {
- req.flash('errors', errors);
- return res.redirect('/login');
- }
- passport.authenticate('local', function(err, user, info) {
- if (err) {
- return next(err);
- }
- if (!user) {
- req.flash('errors', { msg: info.message });
- return res.redirect('/login');
- }
- req.logIn(user, function(err) {
- if (err) {
- return next(err);
- }
- req.flash('success', { msg: 'Success! You are logged in.' });
- res.redirect(req.session.returnTo || '/');
- });
- })(req, res, next);
- };
- /********** GET / Logout **************/
- exports.logout = function(req, res) {
- req.logout();
- res.redirect('/');
- };
- /********** GET / Register **************/
- exports.getSignup = function(req, res) {
- if (req.user) {
- return res.redirect('/');
- }
- res.render('account/register', {
- title: 'Register'
- });
- };
- /********** POST / Register **************/
- exports.postSignup = function(req, res, next) {
- req.assert('email', 'Email is not valid').isEmail();
- req.assert('password', 'Password must be at least 4 characters long').len(4);
- req.assert('confirmPassword', 'Passwords do not match').equals(req.body.password);
- var errors = req.validationErrors();
- if (errors) {
- req.flash('errors', errors);
- return res.redirect('/register');
- }
- var user = new User({
- email: req.body.email,
- password: req.body.password
- });
- User.findOne({ email: req.body.email }, function(err, existingUser) {
- if (existingUser) {
- req.flash('errors', { msg: 'Account with that email address already exists.' });
- return res.redirect('/register');
- }
- user.save(function(err) {
- if (err) {
- return next(err);
- }
- req.logIn(user, function(err) {
- if (err) {
- return next(err);
- }
- res.redirect('/');
- });
- });
- });
- };
|