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 request = require(path.join(__dirname + "/request")); | ||||
| 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 virtualApi = require(path.join(__dirname + "/virtualLottery")); | ||||
| const virtualRegistrationApi = require(path.join( | ||||
| @@ -17,7 +17,6 @@ const virtualRegistrationApi = require(path.join( | ||||
| )); | ||||
| const lottery = require(path.join(__dirname + "/lottery")); | ||||
|  | ||||
|  | ||||
| const router = express.Router(); | ||||
|  | ||||
| router.get("/wineinfo/search", wineinfo.wineSearch); | ||||
| @@ -61,10 +60,8 @@ router.post('/winner/notify/:id', virtualRegistrationApi.sendNotificationToWinne | ||||
| router.get('/winner/:id', virtualRegistrationApi.getWinesToWinnerById); | ||||
| router.post('/winner/:id', virtualRegistrationApi.registerWinnerSelection); | ||||
|  | ||||
| // router.use("/api/", updateApi); | ||||
| // router.use("/api/", retrieveApi); | ||||
| // router.use("/api/", wineinfoApi); | ||||
| // router.use("/api/lottery", lottery); | ||||
| // router.use("/virtual-registration/", virtualRegistrationApi); | ||||
| router.post('/login', userApi.login); | ||||
| router.post('/register', mustBeAuthenticated, userApi.register); | ||||
| router.get('/logout', userApi.logout); | ||||
|  | ||||
| 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