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;
 |