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 };
|
|
|
|
const token = jwt.sign({ user: body }, 'TOP_SECRET');
|
|
|
|
|
|
|
|
return res.json({ token });
|
|
|
|
}
|
|
|
|
);
|
|
|
|
} catch (error) {
|
|
|
|
return next(error);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
)(req, res, next);
|
|
|
|
}
|
|
|
|
);
|
2024-05-28 20:22:41 +00:00
|
|
|
|
|
|
|
export default router
|