Source: middleware/authenticate.js

const crypto = require('crypto');
const passport = require('./passportMiddleware');

/**
 * Generate a random token for user authentication.
 * @returns {string} A randomly generated token.
 */
function generateToken() {
    return crypto.randomBytes(64).toString('hex');
}
// middleware function to authenticate requests
const authenticateToken = (req, res, next) => {
    passport.authenticate('bearer', { session: false }, (err, user, info) => {
        if (err) { return next(err); }
        if (!user) {
            return res.status(401).json({ success: false, message: 'Unauthorized: Invalid token' });
        }
        req.user = user;
        next();
    })(req, res, next);
};

module.exports = {
    authenticateToken,
    generateToken
};