HEX
Server: Apache
System: Linux srv4.garantili.com.tr 4.18.0-477.21.1.lve.1.el8.x86_64 #1 SMP Tue Sep 5 23:08:35 UTC 2023 x86_64
User: yenicep (1023)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home2/yenicep/garantili-kasko/middleware/auth.js
const jwt = require('jsonwebtoken');

const createPoliceRoute = require('../routes/hdi/create-police-route');
const mobilExpresRoute = require('../routes/mobil-expres/mobil-expres-route');

const mobileApiGetPoliceRoute = require('../mobile/routes/get-police-info');

const conn = require('../core/util/conn');
const query = require('../core/util/query/kaskolu-cihazlar-queries');

module.exports = function (app) {
    const checkToken = (req, res, next) => {
        let token = req.headers['x-access-token'] || req.headers['authorization'];

        if (token === undefined) {
            return res.status(401).send({ error: 'Token is not created.' });
        }

        if (token.startsWith('Bearer ')) {
            token = token.slice(7, token.length);
        }

        if (token) {
            jwt.verify(token, "mysecret", (err, decoded) => {
                if (err) return res.json({ success: false, message: 'Invalid token.' });
                else {
                    req.decoded = decoded;
                    next();
                }
            });
        } else {
            return res.json({
                success: false,
                message: 'Invalid token.'
            });
        }
    };


    app.post('/api/sigorta/auth', async (req, res) => {
        const username = req.body.username;
        const password = req.body.password;

        conn.query(query.GET_AUTH(username), (err, results) => {
            if (results[0].username === username && results[0].password === password) {
                const token = jwt.sign({ userName: username, role: 'admin' }, 'mysecret', { expiresIn: '24h' });
                return res.status(200).send({ token: token });
            } else if (results[0].password !== password) {
                return res.status(401).send({ error: "Invalid user password." });
            }

            return res.status(401).send({ error: "Invalid user." });
        });
    });

    app.get('/sigorta', (req, res) => {
        res.send('Hello world');
    });

    app.use('/sigorta', createPoliceRoute);
    app.use('/sigorta/odeme', mobilExpresRoute);

    app.use('/api/sigorta', checkToken, mobileApiGetPoliceRoute);
}