53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
import jwt from "jsonwebtoken";
|
|
import passport from "passport";
|
|
import jwtSecret from "../config/jwtConfig";
|
|
import { db } from "../db.mjs";
|
|
import logger from "../logger.mjs";
|
|
|
|
module.exports = (app) => {
|
|
app.post("/loginUser", (req, res, next) => {
|
|
passport.authenticate("login", (err, users, info) => {
|
|
if (err) {
|
|
logger.error(`error ${err}`);
|
|
}
|
|
if (info !== undefined) {
|
|
logger.error(info.message);
|
|
if (info.message === "bad username") {
|
|
res.status(401).send(info.message);
|
|
} else {
|
|
res.status(403).send(info.message);
|
|
}
|
|
} else {
|
|
req.logIn(users, async () => {
|
|
let user = await db("users")
|
|
.select("*")
|
|
.where({ username: req.body.username });
|
|
user = user[0];
|
|
const token = jwt.sign({ id: user.id }, jwtSecret.secret, {
|
|
expiresIn: 60 * 60,
|
|
});
|
|
res.status(200).send({
|
|
auth: true,
|
|
token,
|
|
message: "user found & logged in",
|
|
});
|
|
// User.findOne({
|
|
// where: {
|
|
// username: req.body.username,
|
|
// },
|
|
// }).then((user) => {
|
|
// const token = jwt.sign({ id: user.id }, jwtSecret.secret, {
|
|
// expiresIn: 60 * 60,
|
|
// });
|
|
// res.status(200).send({
|
|
// auth: true,
|
|
// token,
|
|
// message: "user found & logged in",
|
|
// });
|
|
// });
|
|
});
|
|
}
|
|
})(req, res, next);
|
|
});
|
|
};
|