UNPKG

@iftekher2108/express-recharge

Version:

Create Express Recharge starter app

75 lines (60 loc) 2.06 kB
const bcrypt = require("bcryptjs"); const { generateToken } = require("recharge-utils"); const User = require("@module/Users/Models/User"); // login function exports.login = async (req, res) => { const { email, password } = req.body; try { const user = await User.findOne({ where: { email } }); if (!user) { return res.status(400).json({ message: "User not found" }); } const isMatch = await bcrypt.compare(password, user.password); if (!isMatch) { return res.status(400).json({ message: "Invalid password" }); } const token = generateToken(user); // Create JWT token res.json({ token, user: { id: user.id, name: user.name, email: user.email }, }); // Send token back to the client } catch (err) { res.status(500).json({ message: "Server error", error: err }); } }; // register function exports.register = async (req, res) => { const { name, email, password } = req.body; try { // Check if the user already exists const existingUser = await User.findOne({ where: { email } }); if (existingUser) { return res.status(400).json({ message: "User already exists" }); } // Hash the password before saving to the database const hashedPassword = await bcrypt.hash(password, 10); // Create the new user const user = await User.create({ name, email, password: hashedPassword, }); // Generate a JWT token for the user const token = generateToken(user); // Respond with the token and user data (you can choose what to send back) res.status(201).json({ token, user: { id: user.id, name: user.name, email: user.email }, }); } catch (err) { console.error(err); res.status(500).json({ message: "Server error", error: err }); } }; // logout function exports.logout = (req, res) => { // On client: just delete token. res.json({ message: "Logged out successfully. (Client should delete token)", }); };