feat: use requireSignIn middleware

This commit is contained in:
karishmas6
2024-09-25 20:51:04 +05:30
parent 97cb817311
commit 784d4f4e9b

View File

@@ -2,6 +2,7 @@ import { Router, Request, Response } from 'express';
import User from '../models/User'; import User from '../models/User';
import jwt from 'jsonwebtoken'; import jwt from 'jsonwebtoken';
import { hashPassword, comparePassword } from '../utils/auth'; import { hashPassword, comparePassword } from '../utils/auth';
import { requireSignIn } from '../middlewares/auth';
export const router = Router(); export const router = Router();
interface AuthenticatedRequest extends Request { interface AuthenticatedRequest extends Request {
@@ -39,7 +40,7 @@ router.post('/login', async (req, res) => {
if (!email || !password) return res.status(400).send('Email and password are required') if (!email || !password) return res.status(400).send('Email and password are required')
if (password.length < 6) return res.status(400).send('Password must be at least 6 characters') if (password.length < 6) return res.status(400).send('Password must be at least 6 characters')
let user = await User.findOne({raw: true, where: { email } }); let user = await User.findOne({ raw: true, where: { email } });
if (!user) return res.status(400).send('User does not exist'); if (!user) return res.status(400).send('User does not exist');
const match = await comparePassword(password, user.password) const match = await comparePassword(password, user.password)
@@ -70,23 +71,19 @@ router.get('/logout', async (req, res) => {
} }
}) })
router.get('/current-user', async (req: AuthenticatedRequest, res) => { router.get('/current-user', requireSignIn, async (req: AuthenticatedRequest, res) => {
console.log('Current user request received');
try { try {
if (!req.user) { if (!req.user) {
console.log('No user in request');
return res.status(401).json({ ok: false, error: 'Unauthorized' }); return res.status(401).json({ ok: false, error: 'Unauthorized' });
} }
console.log('Fetching user with id:', req.user.id);
const user = await User.findByPk(req.user.id, { const user = await User.findByPk(req.user.id, {
attributes: { exclude: ['password'] }, attributes: { exclude: ['password'] },
}); });
if (!user) { if (!user) {
console.log('User not found in database');
return res.status(404).json({ ok: false, error: 'User not found' }); return res.status(404).json({ ok: false, error: 'User not found' });
} else {
return res.status(200).json({ ok: true, user: user });
} }
console.log('User found, sending response');
return res.status(200).json({ ok: true, user: user });
} catch (error: any) { } catch (error: any) {
console.error('Error in current-user route:', error); console.error('Error in current-user route:', error);
return res.status(500).json({ ok: false, error: `Could not fetch current user: ${error.message}` }); return res.status(500).json({ ok: false, error: `Could not fetch current user: ${error.message}` });