[๋ฐ๋ธŒ์ฝ”์Šค] ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ๊ตฌํ˜„

2025. 5. 15. 22:26ยท๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/ํ”„๋กœ์ ํŠธ
const express = require("express");
const router = express.Router();
const {
  join,
  login,
  requrestReset,
  passwordReset,
} = require("../controller/UserController");

router.use(express.json());
router.post("/join", join);
router.post("/login", login);
router.post("/reset", requrestReset);
router.put("/reset", passwordReset);

module.exports = router;
const conn = require("../mariadb");
const { StatusCodes } = require("http-status-codes");
const jwt = require("jsonwebtoken");
const dotenv = require("dotenv");

dotenv.config();

const join = (req, res) => {
  const { email, password } = req.body;
  let sql = "INSERT INTO users (email, password) VALUES (?, ?)";
  let values = [email, password];

  conn.query(sql, values, (err, results) => {
    if (err) {
      console.log(err);
      res.status(StatusCodes.BAD_REQUEST).end();
    }
    return res.status(StatusCodes.CREATED).json(results);
  });
};

const login = (req, res) => {
  const { email, password } = req.body;

  let sql = "SELECT * FROM users WHERE email = ?";
  conn.query(sql, email, (err, results) => {
    if (err) {
      console.log(err);
      res.status(StatusCodes.BAD_REQUEST).end();
    }

    const loginUser = results[0];
    if (loginUser && loginUser.password === password) {
      const token = jwt.sign(
        {
          email: loginUser.email,
        },
        process.env.JWT_SECRET,
        { expiresIn: "5m", issuer: "monicx" }
      );

      res.cookie("token", token, {
        httpOnly: true,
      });

      console.log(token); //ํ™•์ธ์šฉ
      return res.status(StatusCodes.OK).json({ token });
    } else {
      return res.status(StatusCodes.UNAUTHORIZED).end();
    }
  });
};

const requrestReset = () => {};
const passwordReset = () => {};

module.exports = { join, login, requrestReset, passwordReset };

 

์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋ผ์šฐํ„ฐ์™€ ๋กœ์ง ๋ถ„๋ฆฌ

 

 jwt ํ† ํฐ์„ ์‚ฌ์šฉํ•œ ์ธ์ฆ ๊ตฌํ˜„

'๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค > ํ”„๋กœ์ ํŠธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐ๋ธŒ์ฝ”์Šค] ๋„์„œ ๋ชฉ๋ก ์กฐํšŒ ํŽ˜์ด์ง• ์ ์šฉ API  (3) 2025.05.19
[๋ฐ๋ธŒ์ฝ”์Šค] ๋„์„œ ์กฐํšŒ API  (0) 2025.05.16
[๋ฐ๋ธŒ์ฝ”์Šค] ๋ถ์Šคํ† ์–ด ํ”„๋กœ์ ํŠธ #1. app.js ๋ฐ ์œ ์ € api ๋ผ์šฐํ„ฐ ํ…œํ”Œ๋ฆฟ  (0) 2025.05.13
[๋ฐ๋ธŒ์ฝ”์Šค] BOOK STORE ํ”„๋กœ์ ํŠธ API ์„ค๊ณ„(2)  (1) 2025.05.09
[๋ฐ๋ธŒ์ฝ”์Šค] BOOK STORE ํ”„๋กœ์ ํŠธ API ์„ค๊ณ„(1)  (4) 2025.05.08
'๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/ํ”„๋กœ์ ํŠธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐ๋ธŒ์ฝ”์Šค] ๋„์„œ ๋ชฉ๋ก ์กฐํšŒ ํŽ˜์ด์ง• ์ ์šฉ API
  • [๋ฐ๋ธŒ์ฝ”์Šค] ๋„์„œ ์กฐํšŒ API
  • [๋ฐ๋ธŒ์ฝ”์Šค] ๋ถ์Šคํ† ์–ด ํ”„๋กœ์ ํŠธ #1. app.js ๋ฐ ์œ ์ € api ๋ผ์šฐํ„ฐ ํ…œํ”Œ๋ฆฟ
  • [๋ฐ๋ธŒ์ฝ”์Šค] BOOK STORE ํ”„๋กœ์ ํŠธ API ์„ค๊ณ„(2)
ํ‚ํ‚์ž‰
ํ‚ํ‚์ž‰
๋ฟŒ๋ก ํŠธ ๊ฐœ๋ฐœ์ž(์ง€๋ง์ƒ)์˜ ํ’€์Šคํƒ ๊ฐœ๋ฐœ์ž ๋„์ „๊ธฐ
  • ํ‚ํ‚์ž‰
    monicx.dev
    ํ‚ํ‚์ž‰
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (173)
      • ๐Ÿ–ฅ๏ธdevelop (2)
        • Github (2)
        • Frontend (4)
        • Backend (5)
        • Mobile (0)
        • CS (0)
        • Three.js (0)
        • Docker (2)
      • ๐Ÿ“šbook (9)
        • npm Deep Dive (4)
      • ๐Ÿ“•review (33)
        • ์ฑ… (24)
        • ํ–‰์‚ฌ (1)
        • ํšŒ๊ณ  (2)
      • โญproject (5)
        • petiary (2)
        • ๆšŽ่ฉ  (0)
        • ์ธํ„ด (2)
      • ๐Ÿ˜ถ‍๐ŸŒซ๏ธalgorithm (0)
      • ๐Ÿ’กtips (1)
      • ๐Ÿ˜Ždaily (10)
      • ๐Ÿ•น๏ธgame (0)
      • ๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค (87)
        • TIL (61)
        • ํ”„๋กœ์ ํŠธ (18)
        • ํšŒ๊ณ  (8)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
  • ๋งํฌ

    • ๋ฒจ๋กœ๊ทธ
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
ํ‚ํ‚์ž‰
[๋ฐ๋ธŒ์ฝ”์Šค] ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ๊ตฌํ˜„
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”