all is session login
Wed Jul 03 2024 13:15:09 GMT+0000 (Coordinated Universal Time)
Saved by @sid_balar
var jwt = require('jsonwebtoken');
const userModel = require('../model/user');
function Auth (req, res, next) {
const getUserCookies = req.cookies.userData;
if(!getUserCookies){
res.status(200).json({message: 'Login First'})
}
jwt.verify(getUserCookies.token, 'shhhhh', async function(err, decoded) {
req.user = await userModel.findById(decoded._id);
if (!req.user) {
return res.status(401).json({ error: 'Invalid token. User not found.' });
}
next() // bar
});
}
module.exports = Auth;
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
email:{
type: 'string',
required: true
},
password:{
type: 'string',
required: true
}
});
const userModel = mongoose.model('User', userSchema);
module.exports = userModel;
var express = require('express');
var router = express.Router();
const userModel = require('../model/user');
var jwt = require('jsonwebtoken');
const Auth = require('../middleware/Auth');
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
const createUser = async (req,res,nexr) => {
try {
const userDatasave = new userModel({
email: req.body.email,
password: req.body.password
})
const saveUser = await userDatasave.save();
res.status(200).json({
status: 'success',
saveUser: saveUser
})
} catch (error) {
console.log(error.message);
res.status(500).json({
status: 'Server Error',
})
}
}
const checkUser = async (req,res,nexr) => {
try {
const {email, password} = req.body;
const findUser = await userModel.findOne({email})
if(findUser){
if(findUser.password === password){
var token = jwt.sign({ _id: findUser._id }, 'shhhhh', { expiresIn: '1h'});
res.cookie('userData',{...findUser,token},{httpOnly: true});
res.status(200).json({
status: 'login successful',
token
})
}else{
res.status(200).json({
status: 'Wrong Password',
})
}
}else{
res.status(200).json({
status: 'User not Found',
})
}
} catch (error) {
console.log(error.message);
res.status(500).json({
status: 'Server Error',
})
}
}
const getAllUser = async (req,res,nexr) => {
try {
const findUser = await userModel.find({})
res.status(200).json({
status: 'success',
findUser: findUser
})
} catch (error) {
console.log(error.message);
res.status(500).json({
status: 'Server Error',
})
}
}
const userLogout = async (req,res,nexr) => {
try {
res.clearCookie('userData');
res.status(200).json({
status: 'user logged out successfully',
})
} catch (error) {
console.log(error.message);
res.status(500).json({
status: 'Server Error',
})
}
}
router.post('/saveuser',createUser);
router.post('/loginuser',checkUser);
router.get('/getuser',Auth,getAllUser);
router.get('/logout',Auth,userLogout);
module.exports = router;



Comments