routes/authRoutes.js

PHOTO EMBED

Sun Apr 06 2025 17:56:00 GMT+0000 (Coordinated Universal Time)

Saved by @exam3

const express = require('express');
const jwt = require('jsonwebtoken');
const router = express.Router();

const users = [];

router.post('/register', (req, res) => {
    const user = req.body;
    users.push(user);
    res.send({ message: 'User registered' });
});

router.post('/login', (req, res) => {
    const { username, password } = req.body;
    const user = users.find(u => u.username === username && u.password === password);
    if (!user) return res.status(401).send('Invalid credentials');

    const token = jwt.sign({ username }, 'secretkey', { expiresIn: '1h' });
    res.send({ token });
});

router.get('/profile', verifyToken, (req, res) => {
    res.send({ message: 'Welcome to your profile!', user: req.user });
});

function verifyToken(req, res, next) {
    const token = req.headers['authorization'];
    if (!token) return res.status(403).send('No token provided');
    jwt.verify(token, 'secretkey', (err, decoded) => {
        if (err) return res.status(401).send('Invalid token');
        req.user = decoded;
        next();
    });
}

module.exports = router;
content_copyCOPY