Separated router and user authentication. Renamed login.js to user.js and now it only exports functions for the router to use.
This commit is contained in:
59
api/login.js
59
api/login.js
@@ -1,59 +0,0 @@
|
|||||||
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;
|
|
||||||
@@ -9,7 +9,7 @@ const update = require(path.join(__dirname + "/update"));
|
|||||||
const retrieve = require(path.join(__dirname + "/retrieve"));
|
const retrieve = require(path.join(__dirname + "/retrieve"));
|
||||||
const request = require(path.join(__dirname + "/request"));
|
const request = require(path.join(__dirname + "/request"));
|
||||||
const subscriptionApi = require(path.join(__dirname + "/subscriptions"));
|
const subscriptionApi = require(path.join(__dirname + "/subscriptions"));
|
||||||
const loginApi = require(path.join(__dirname + "/login"));
|
const userApi = require(path.join(__dirname + "/user"));
|
||||||
const wineinfo = require(path.join(__dirname + "/wineinfo"));
|
const wineinfo = require(path.join(__dirname + "/wineinfo"));
|
||||||
const virtualApi = require(path.join(__dirname + "/virtualLottery"));
|
const virtualApi = require(path.join(__dirname + "/virtualLottery"));
|
||||||
const virtualRegistrationApi = require(path.join(
|
const virtualRegistrationApi = require(path.join(
|
||||||
@@ -17,7 +17,6 @@ const virtualRegistrationApi = require(path.join(
|
|||||||
));
|
));
|
||||||
const lottery = require(path.join(__dirname + "/lottery"));
|
const lottery = require(path.join(__dirname + "/lottery"));
|
||||||
|
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
router.get("/wineinfo/search", wineinfo.wineSearch);
|
router.get("/wineinfo/search", wineinfo.wineSearch);
|
||||||
@@ -61,10 +60,8 @@ router.post('/winner/notify/:id', virtualRegistrationApi.sendNotificationToWinne
|
|||||||
router.get('/winner/:id', virtualRegistrationApi.getWinesToWinnerById);
|
router.get('/winner/:id', virtualRegistrationApi.getWinesToWinnerById);
|
||||||
router.post('/winner/:id', virtualRegistrationApi.registerWinnerSelection);
|
router.post('/winner/:id', virtualRegistrationApi.registerWinnerSelection);
|
||||||
|
|
||||||
// router.use("/api/", updateApi);
|
router.post('/login', userApi.login);
|
||||||
// router.use("/api/", retrieveApi);
|
router.post('/register', mustBeAuthenticated, userApi.register);
|
||||||
// router.use("/api/", wineinfoApi);
|
router.get('/logout', userApi.logout);
|
||||||
// router.use("/api/lottery", lottery);
|
|
||||||
// router.use("/virtual-registration/", virtualRegistrationApi);
|
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|||||||
51
api/user.js
Normal file
51
api/user.js
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
const passport = require("passport");
|
||||||
|
const path = require("path");
|
||||||
|
const User = require(path.join(__dirname + "/../schemas/User"));
|
||||||
|
const router = require("express").Router();
|
||||||
|
|
||||||
|
const register = (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 })
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const login = (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);
|
||||||
|
};
|
||||||
|
|
||||||
|
const logout = (req, res) => {
|
||||||
|
req.logout();
|
||||||
|
res.redirect("/");
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
register,
|
||||||
|
login,
|
||||||
|
logout
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user