var express = require('express'); var router = express.Router(); var userModel = require('../model/user'); const auth = require('../middleware/auth'); const jwt = require('jsonwebtoken'); const bcrypt = require('bcrypt'); /* GET users listing. */ const CreateUser = async (req,res,next) => { try { const createUser = new userModel({ username: req.body.username, password: req.body.password }) const saveData = await createUser.save(); res.status(200).json({ status: 'success', saveData }) } catch (error) { res.status(500).json({ status: 'error', error }) } } const CheckUser = async (req,res,next) => { try { const {username , password } = req.body const findUser = await userModel.findOne({ username : username}) if(findUser){ bcrypt.compare(password, findUser.password, function(err, result) { // result == true if (result == true) { console.log(findUser); const token = jwt.sign({ _id: findUser._id }, "JWT_SECRET", { expiresIn: '1h' }); res.cookie('token', token, { httpOnly: true }); req.session.user = findUser; res.status(200).json({ status: 'Login success', token }) }else { res.status(500).json({ status: 'Password Incorrect', }) } }); }else{ res.status(500).json({ status: 'User not Found', }) } } catch (error) { res.status(500).json({ status: 'error', error }) } } const GetUser = async (req,res,next) => { try { const page = parseInt(req.query.page); const limit = parseInt(req.query.limit) || 10; const skip = (page - 1) * limit; const findUser = await userModel.find().skip(skip).limit(limit); const userToken = req.cookies.token; const user = req.session.user; console.log("🚀 ~ GetUser ~ user:", user) console.log(user); res.status(200).json({ status: 'Login success', findUser, userToken, user }) } catch (error) { res.status(500).json({ status: 'error', error }) } } const logoutUser = async (req,res,next) => { try { res.clearCookie('token'); res.send({ message: 'Logged out successfully' }); } catch (error) { res.status(500).json({ status: 'error', error }) } } router.post('/signin', CreateUser); router.post('/logIn', CheckUser); router.get('/getUser',auth, GetUser); router.get('/logout',auth, logoutUser); module.exports = router;
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter