Files
cannaiq/backend/src/routes/auth.ts
2025-11-28 19:45:44 -07:00

51 lines
1.1 KiB
TypeScript
Executable File

import { Router } from 'express';
import { authenticateUser, generateToken, authMiddleware, AuthRequest } from '../auth/middleware';
const router = Router();
// Login
router.post('/login', async (req, res) => {
try {
const { email, password } = req.body;
if (!email || !password) {
return res.status(400).json({ error: 'Email and password required' });
}
const user = await authenticateUser(email, password);
if (!user) {
return res.status(401).json({ error: 'Invalid credentials' });
}
const token = generateToken(user);
res.json({
token,
user: {
id: user.id,
email: user.email,
role: user.role
}
});
} catch (error) {
console.error('Login error:', error);
res.status(500).json({ error: 'Internal server error' });
}
});
// Get current user
router.get('/me', authMiddleware, async (req: AuthRequest, res) => {
res.json({
user: req.user
});
});
// Refresh token
router.post('/refresh', authMiddleware, async (req: AuthRequest, res) => {
const token = generateToken(req.user!);
res.json({ token });
});
export default router;