login.js 843 B

12345678910111213141516171819202122232425262728293031323334353637
  1. const express = require('express'),
  2. router = express.Router(),
  3. templateArgs = require('../src/templateArgs.js'),
  4. User = require("../src/sequelize.js").User;
  5. function renderLogin(req, res, loginFailure) {
  6. templateArgs.generate(req).then(args => {
  7. args.title = "Totoro Book - Login";
  8. args.failure = !!loginFailure;
  9. res.render('login', args);
  10. });
  11. }
  12. router.get('/', (req, res, next) => {
  13. if (req.session.userId)
  14. res.redirect("/");
  15. else
  16. renderLogin(req, res);
  17. });
  18. router.post('/', (req, res) => {
  19. User.findOne({
  20. where: {
  21. username: req.body.username,
  22. password: require('sha256')(req.body.password)
  23. }
  24. }).then(val => {
  25. if (val) {
  26. req.session.userId = val.id;
  27. res.redirect("/");
  28. } else {
  29. renderLogin(req, res, true);
  30. }
  31. });
  32. });
  33. module.exports = router;