import bcrypt = require('bcrypt'); import { User } from '../models/user'; /** * API endpoint for account logins. * @param req * @param res */ export function authLogin(req, res) { const { email, password } = req.body; if (req.user) return res.status(200).json({ error: 11 }); if (!email || !password) return res.status(200).json({ error: 2 }); User.findOne({ email }, (err, user) => { if (err) { console.log(err); return res.status(200).json({ error: 1 }); } if (!user) return res.status(200).json({ error: 5 }); bcrypt.compare(password, user.password, (err, result) => { if (err) { console.log(err); return res.status(200).json({ error: 1 }); } if (!result) return res.status(200).json({ error: 10 }); req.login(user).then(() => { res.status(200).json({ error: 0, uuid: user.uuid, displayname: user.displayname, username: user.username }); }).catch((err) => { console.log(err); return res.status(200).json({ error: 1 }); }); }); }); }