HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vmi1674223.contaboserver.net 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64
User: root (0)
PHP: 7.4.3-4ubuntu2.22
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //home/evaluation-leave/controllers/authController.js
// controllers/authController.js
const bcrypt = require("bcryptjs");
const jwt = require("jsonwebtoken");
const config = require("../config/config");
const User = require("../models/users");

module.exports = {
  signin: async (req, res) => {
    const { email, password } = req.body;

    try {
      const user = await User.findUserByEmail(email);
      if (!user) {
        return res.status(401).json({ message: "Invalid email or password" });
      }

      bcrypt.compare(password, user.password, (error, pwMatch) => {
        if (error || !pwMatch) {
          return res.status(401).json({ message: "Invalid email or password" });
        }

        const payload = {
          email: user.email,
          entity_id: user.id,
          active_yn: user.active_yn,
        };

        const token = jwt.sign(payload, config.jwtSecretKey, {
          expiresIn: "1d",
        });

        res.status(200).json({
          user: {
            email: user.email,
            fname: user.fname,
            lname: user.lname,
            roleid: user.roleid,
            departmentId: user.departmentId,
            status: user.active_yn,
            evaluation_status: user.current_eval_status,
            leave_b_foward: user.leave_b_foward,
            leave_earned: user.leave_earned,
            leave_taken: user.leave_taken,
          },
          token,
        });
      });
    } catch (error) {
      console.error("Error occurred:", error);
      res.status(500).json({ error: true, message: "Internal Server Error" });
    }
  },
  // ...other controllers...
};