Skip to content
Snippets Groups Projects
Select Git revision
  • 86dc57a2233aa3d2c984bc3e46ad4ee234f6b28e
  • main default protected
2 results

router-guest.ts

Blame
  • Forked from an inaccessible project.
    router-guest.ts 1.45 KiB
    import express         from 'express';
    import { StatusCodes } from 'http-status-codes';
    import {checkExistingUser, checkUserFields, createAccountCheck} from './middleware'
    import {Database} from "../database/Database";
    import * as process from "process";
    import {userType} from "../database/models/User";
    const jwt = require('jsonwebtoken');
    
    
    
    const router: express.Router = express.Router();
    
    
    
    
    
    router.post('/users', checkUserFields, (req: express.Request, res: express.Response) => {
        createAccountCheck(req, res);
    });
    
    router.post('/users/:username', checkExistingUser, async (req: express.Request, res: express.Response) => {
        const data = req.body
        let user=await Database.infoUser(req.params.username);
        if(user){
            let usertype=user.dataValues.type === "user"?"USER":"ADMIN"
            if (user.dataValues.password === data.password) {
                // Génération du token JWT
                const userInfo={ type: user.dataValues.type, username: req.params.username, firstname: user.dataValues.firstname, lastname: user.dataValues.lastname }
                const secretKey=process.env.SECRET_KEY;
                const token = jwt.sign(userInfo, secretKey);
                res.status(StatusCodes.OK).json({message: usertype+"_ALLOWED", token: token, firstname: user.dataValues.firstname, lastname: user.dataValues.lastname});
            }else{
                res.status(StatusCodes.BAD_REQUEST).json({message: "USER_PASSWORD_FALSE"})
            }
        }
    
    
    
    });
    
    
    export default router;