53 lines
1.1 KiB
JavaScript
53 lines
1.1 KiB
JavaScript
const passport = require("passport");
|
|
const path = require("path");
|
|
const User = require(path.join(__dirname + "/../schemas/User"));
|
|
const router = require("express").Router();
|
|
|
|
router.get("/", function(req, res) {
|
|
res.render("index", { user: req.user });
|
|
});
|
|
|
|
router.get("/register", function(req, res) {
|
|
res.render("register", {});
|
|
});
|
|
|
|
router.post("/register", function(req, res, next) {
|
|
console.log("registering user");
|
|
User.register(
|
|
new User({ username: req.body.username }),
|
|
req.body.password,
|
|
function(err) {
|
|
if (err) {
|
|
console.log("error while user register!", err);
|
|
return next(err);
|
|
}
|
|
|
|
console.log("user registered!");
|
|
|
|
res.redirect("/");
|
|
}
|
|
);
|
|
});
|
|
|
|
router.get("/login", function(req, res) {
|
|
res.render("login", { user: req.user, message: req.flash("error") });
|
|
});
|
|
|
|
router.post(
|
|
"/login",
|
|
passport.authenticate("local", {
|
|
failureRedirect: "/login",
|
|
failureFlash: true
|
|
}),
|
|
function(req, res) {
|
|
res.redirect("/");
|
|
}
|
|
);
|
|
|
|
router.get("/logout", function(req, res) {
|
|
req.logout();
|
|
res.redirect("/");
|
|
});
|
|
|
|
module.exports = router;
|