user.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. exports.getLogin = function (req, res) {
  2. if (req.user) {
  3. return res.redirect('/');
  4. }
  5. res.render('account/login', {
  6. title: 'Login'
  7. });
  8. };
  9. exports.postLogin = function(req, res, next) {
  10. req.assert('email', 'Email is not valid').isEmail();
  11. req.assert('password', 'Password cannot be blank').notEmpty();
  12. var errors = req.validationErrors();
  13. if (errors) {
  14. req.flash('errors', errors);
  15. return res.redirect('/login');
  16. }
  17. passport.authenticate('local', function(err, user, info) {
  18. if (err) {
  19. return next(err);
  20. }
  21. if (!user) {
  22. req.flash('errors', { msg: info.message });
  23. return res.redirect('/login');
  24. }
  25. req.logIn(user, function(err) {
  26. if (err) {
  27. return next(err);
  28. }
  29. req.flash('success', { msg: 'Success! You are logged in.' });
  30. res.redirect(req.session.returnTo || '/');
  31. });
  32. })(req, res, next);
  33. };
  34. exports.logout = function(req, res) {
  35. req.logout();
  36. res.redirect('/');
  37. };
  38. exports.getSignup = function(req, res) {
  39. if (req.user) {
  40. return res.redirect('/');
  41. }
  42. res.render('account/register', {
  43. title: 'Register'
  44. });
  45. };