passport-jwt/routes/routes.mts

53 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-05-28 20:22:41 +00:00
import express from "express"
import passport from "passport"
import jwt from 'jsonwebtoken';
const router = express.Router()
router.post("/signup",
passport.authenticate("signup", { session: false }),
async (req, res, next) => {
res.json({
message: "signup successful",
user: req.user
})
})
2024-05-29 09:34:21 +00:00
// router.post("/login", passport.authenticate('local'),
// function(req, res) {
// res.json({ res })
// })
router.post(
'/login',
async (req, res, next) => {
passport.authenticate(
'login',
async (err, user, info) => {
try {
if (err || !user) {
const error = new Error('An error occurred.');
return next(error);
}
req.login(
user,
{ session: false },
async (error) => {
if (error) return next(error);
const body = { _id: user._id, email: user.email };
2024-05-29 13:52:57 +00:00
const token = jwt.sign({ user: body }, 'TOP_SECRET', { expiresIn: "20m" });
2024-05-29 09:34:21 +00:00
return res.json({ token });
}
);
} catch (error) {
return next(error);
}
}
)(req, res, next);
}
);
2024-05-28 20:22:41 +00:00
export default router