60 lines
1.9 KiB
JavaScript
60 lines
1.9 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.sendFile(path.join(__dirname + "/../public/index.html"));
|
|
});
|
|
|
|
router.get("/register", function(req, res) {
|
|
res.sendFile(path.join(__dirname + "/../public/index.html"));
|
|
});
|
|
|
|
// router.post("/register", function(req, res, next) {
|
|
// User.register(
|
|
// new User({ username: req.body.username }),
|
|
// req.body.password,
|
|
// function(err) {
|
|
// if (err) {
|
|
// if (err.name == "UserExistsError")
|
|
// res.status(409).send({ success: false, message: err.message })
|
|
// else if (err.name == "MissingUsernameError" || err.name == "MissingPasswordError")
|
|
// res.status(400).send({ success: false, message: err.message })
|
|
// return next(err);
|
|
// }
|
|
|
|
// return res.status(200).send({ message: "Bruker registrert. Velkommen " + req.body.username, success: true })
|
|
// }
|
|
// );
|
|
// });
|
|
|
|
router.get("/login", function(req, res) {
|
|
res.sendFile(path.join(__dirname + "/../public/index.html"));
|
|
});
|
|
|
|
router.post("/login", function(req, res, next) {
|
|
passport.authenticate("local", function(err, user, info) {
|
|
if (err) {
|
|
if (err.name == "MissingUsernameError" || err.name == "MissingPasswordError")
|
|
return res.status(400).send({ message: err.message, success: false })
|
|
return next(err);
|
|
}
|
|
|
|
if (!user) return res.status(404).send({ message: "Incorrect username or password", success: false })
|
|
|
|
req.logIn(user, (err) => {
|
|
if (err) { return next(err) }
|
|
|
|
return res.status(200).send({ message: "Velkommen " + user.username, success: true })
|
|
})
|
|
})(req, res, next);
|
|
});
|
|
|
|
router.get("/logout", function(req, res) {
|
|
req.logout();
|
|
res.redirect("/");
|
|
});
|
|
|
|
module.exports = router;
|