Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 2x 2x 7x 7x 7x 1x 6x 6x 2x 4x 4x 4x 4x 4x 1x 1x 1x 1x 1x 2x | // Auth controller
const User = require("../models/User");
const AuthController = {
async login(req, res) {
try {
const { username, password } = req.body;
if (!username || !password) {
return res
.status(400)
.json({ error: "Username and password are required" });
}
const user = await User.findByUsername(username);
if (!user || user.password !== password) {
return res.status(401).json({ error: "Invalid username or password" });
}
// Set session
req.session.user_id = user.user_id;
req.session.username = user.username;
req.session.full_name = user.full_name;
req.session.role = user.role;
res.json({
success: true,
message: "Login successful",
user: {
user_id: user.user_id,
username: user.username,
full_name: user.full_name,
role: user.role,
},
});
} catch (error) {
res.status(500).json({ error: error.message });
}
},
async logout(req, res) {
req.session.destroy((err) => {
Iif (err) {
return res.status(500).json({ error: "Logout failed" });
}
res.json({ success: true, message: "Logout successful" });
});
},
async getCurrentUser(req, res) {
Iif (!req.session.user_id) {
return res.status(401).json({ error: "Not authenticated" });
}
res.json({
user_id: req.session.user_id,
username: req.session.username,
full_name: req.session.full_name,
role: req.session.role,
});
},
};
module.exports = AuthController;
|