Skip to content

Commit

Permalink
add simple login
Browse files Browse the repository at this point in the history
  • Loading branch information
santikzz committed Oct 17, 2024
1 parent 26459a2 commit 5ac1287
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 2 deletions.
38 changes: 36 additions & 2 deletions server/user/userController.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const User = require('./userModel');
const bcrypt = require('bcrypt');
const jwt = require('jsonwebtoken');

// @desc Get all users
// @route GET /api/users
Expand Down Expand Up @@ -43,7 +44,7 @@ const registerUser = async (req, res) => {
name,
surname,
email,
password: hashedPassword,
password_hash: hashedPassword,
});

res.status(201).json({ message: 'User registered successfully' });
Expand All @@ -53,6 +54,39 @@ const registerUser = async (req, res) => {
}
}

// @desc User login
// @route POST /api/users/login
// @access Public
const loginUser = async (req, res) => {
try {
const { email, password } = req.body;

const user = await User.findOne({ email });
if (!user) {
return res.status(400).json({ message: 'Invalid email or password' });
}

const isPasswordValid = await bcrypt.compare(password, user.password_hash);
if (!isPasswordValid) {
return res.status(400).json({ message: 'Invalid email or password' });
}

const token = jwt.sign({ userId: user._id }, process.env.JWT_SECRET, { expiresIn: '30 days' });

res.status(200).json({
token,
user: {
id: user._id,
name: user.name,
surname: user.surname,
},
});

} catch (err) {
res.status(500).json({ message: err.message });
}
}

// @desc Update user
// @route PUT /api/users
// @access Public
Expand Down Expand Up @@ -82,4 +116,4 @@ const updateUser = async (req, res) => {
}
}

module.exports = { getAll, getById, registerUser, updateUser }
module.exports = { getAll, getById, registerUser, updateUser, loginUser }
4 changes: 4 additions & 0 deletions server/user/userRoutes.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ const {
getAll,
getById,
registerUser,
loginUser,
} = require('./userController');

// GET all users
Expand All @@ -16,4 +17,7 @@ router.get('/:id', authMiddleware, getById);
// POST register user
router.post('/register', registerUser);

// POST user login
router.post('/login', loginUser);

module.exports = router;

0 comments on commit 5ac1287

Please sign in to comment.