diff --git a/api/login.js b/api/login.js index 5c2fa0b..399136a 100644 --- a/api/login.js +++ b/api/login.js @@ -6,42 +6,50 @@ 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) { - 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); - } +// router.post("/register", function(req, res, next) { +// User.register( +// new User({ username: req.body.username }), +// req.body.password, +// function(err) { +// if (err) { +// console.log("error while user register!", 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); +// } - console.log("user registered!"); +// console.log("user registered!", req.body.username); + +// res.redirect("/#/") +// } +// ); +// }); - res.redirect("/"); - } - ); -}); -*/ router.get("/login", function(req, res) { res.sendFile(path.join(__dirname + "/../public/index.html")); }); -router.post( - "/login", - passport.authenticate("local", { - failureRedirect: "/#/login" - }), - function(req, res) { - res.redirect("/#/update"); - } -); +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({ success: false, message: err.message }) + return next(err); + } + + if (!user) return res.status(404).send({ success: false, message: "Incorrect username or password" }) + + console.log("user logged in:", user) + res.redirect("/#/update") + })(req, res, next); +}); router.get("/logout", function(req, res) { req.logout(); diff --git a/middleware/mustBeAuthenticated.js b/middleware/mustBeAuthenticated.js new file mode 100644 index 0000000..b537ed5 --- /dev/null +++ b/middleware/mustBeAuthenticated.js @@ -0,0 +1,13 @@ + +const mustBeAuthenticated = (req, res, next) => { + if (!req.isAuthenticated()) { + return res.status(401).send({ + success: false, + message: "Du må være logget inn." + }) + } + + return next() +} + +module.exports = mustBeAuthenticated; \ No newline at end of file diff --git a/src/components/CreatePage.vue b/src/components/CreatePage.vue index 465c5a1..d8cf2e8 100644 --- a/src/components/CreatePage.vue +++ b/src/components/CreatePage.vue @@ -1,57 +1,50 @@ diff --git a/src/components/LoginPage.vue b/src/components/LoginPage.vue index 8adc44d..fdf94b6 100644 --- a/src/components/LoginPage.vue +++ b/src/components/LoginPage.vue @@ -1,57 +1,49 @@ diff --git a/src/styles/loginAndRegister.scss b/src/styles/loginAndRegister.scss new file mode 100644 index 0000000..91a3c89 --- /dev/null +++ b/src/styles/loginAndRegister.scss @@ -0,0 +1,69 @@ +@import "./media-queries.scss"; +@import "./variables.scss"; + +.outer { + display: flex; + flex-direction: column; + + @include desktop { + margin-top: 10vh; + } +} + +h2 { + font-family: knowit, Arial; + text-align: center; + font-size: 3rem; + width: 100vw; + + @include mobile { + font-size: 2rem; + } +} + +form { + display: flex; + flex-direction: row; + justify-content: space-around; + align-items: center; + flex-wrap: wrap; + margin: 0 auto; + width: 60vw; + + @include mobile { + display: flex; + flex-direction: column; + justify-content: center; + margin: 0 auto; + width: 90vw; + } + + .label-div input { + font-size: 2rem; + min-height: 2rem; + line-height: 2rem; + border: none; + border-bottom: 1px solid black; + + @include mobile { + font-size: 2rem; + min-height: 2rem; + line-height: 2rem; + + margin-bottom: 1.5rem; + } + } +} + +.vin-button { + margin-bottom: 0; + margin-top: auto; +} + +.error { + padding: 1.25rem; + margin: 1.25rem; + width: calc(100% - 5rem); + background-color: $light-red; + color: $red; +} \ No newline at end of file