diff --git a/server/.gitignore b/server/.gitignore index b512c09..1dcef2d 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -1 +1,2 @@ -node_modules \ No newline at end of file +node_modules +.env \ No newline at end of file diff --git a/server/package.json b/server/package.json index 36c8684..037ea50 100644 --- a/server/package.json +++ b/server/package.json @@ -9,6 +9,7 @@ "author": "", "license": "ISC", "dependencies": { + "bcrypt": "^5.0.0", "cookie-parser": "~1.4.4", "debug": "~2.6.9", "express": "^4.17.1", diff --git a/server/src/routers/api/userRouter.js b/server/src/routers/api/userRouter.js index 1820dd9..f62df82 100644 --- a/server/src/routers/api/userRouter.js +++ b/server/src/routers/api/userRouter.js @@ -7,32 +7,39 @@ const UserProfile = require("../../models/Profile"); /* GET users listing. */ router.get("/", function (req, res, next) { res.send("respond with a resource"); + next(); }); +router.post("/signup", async (req, res) => { + const user = new User(req.body); + try { + await user.save(); + const token = await user.generateAuthToken(); + const filtered_user = user.toJSON(); + res.status(201).json({ + msg: "Your account has been created successfully", + user: filtered_user, + token, + }); + } catch (e) { + console.log(e); + res.status(400).send({ errors: [{ msg: e.message }] }); + } +}); -router.post("/signup" , async (req, res) => { - const user = new User(req.body) - try{ - await user.save(); - const token = await user.generateAuthToken(); - const filtered_user = user.toJSON() - res.status(201).json({msg: "Your account has been created successfully", user:filtered_user, token}) - }catch(e){ - console.log(e); - res.status(400).send({ errors: [{msg: e.message}] }); - } -}) - -router.post("/login" , async(req,res)=>{ - try{ - const user = await User.findByCredentials(req.body.email, req.body.password) - const token = await user.generateAuthToken() - res.send({ msg: "You have been logged in successfully", user, token}) - }catch(e){ - console.log(e) - res.status(400).send({ errors: [{msg: e.message}] }); +router.post("/login", async (req, res) => { + try { + const user = await User.findByCredentials( + req.body.email, + req.body.password + ); + const token = await user.generateAuthToken(); + res.send({ msg: "You have been logged in successfully", user, token }); + } catch (e) { + console.log(e); + res.status(400).send({ errors: [{ msg: e.message }] }); } -}) +}); // @route GET api/users // @desc Get yourself @@ -41,4 +48,15 @@ router.get("/", auth, (req, res) => { res.send(req.user); }); +// @route POST api/users/logout +// @desc Logout a user +// @access Private + +router.post("/logout", auth, async (req, res) => { + res.clearCookie("token"); + res.status(200).json({ + msg: "User Signout Successfully", + }); +}); + module.exports = router;