user.controller.js 1.81 KB
Newer Older
Choi Ga Young's avatar
Choi Ga Young committed
1
2
import jwt from "jsonwebtoken";
import { User } from '../db/index.js';
3
import config from "../config/app.config.js";
Choi Ga Young's avatar
Choi Ga Young committed
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

const signup = async (req, res) => {
  console.log('server/signup req.body', req.body)
  const { userId, password, userName, userStudNum } = req.body;
  try {
    const findId = await User.findOne({ where: { userID: userId } });
    if (findId) {
      throw new Error("이미 있는 회원정보 입니다.");
    }
    await User.create({
      userID: userId,
      password: password,
      userName: userName,
      studNum: userStudNum
    });
    res.status(201).json("success")
  } catch (error) {
    console.log(error)
22
    return res.status(500).send(error.message || "회원가입 에러발생")
Choi Ga Young's avatar
Choi Ga Young committed
23
24
25
26
27
  }
}

const login = async (req, res) => {
  console.log('server/login req.body', req.body)
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
  const { userId, password } = req.body;
  try {
    const user = await User.scope("withPassword").findOne({ where: { userID: userId } });
    console.log('user확인', user)
    if (!user) {
      return res.status(404).send(`일치하는 정보가 없습니다.`);
    }
    const passwordMatch = await user.comparePassword(password);
    if (passwordMatch) {

      const signData = {
        id: user.userID,
        name: user.userName
    };

      const token = jwt.sign(signData, config.jwtSecret, {
        expiresIn: config.jwtExpires,
      });

      res.cookie(config.cookieName, token, {
        maxAge: config.cookieMaxAge,
        path: "/",
        httpOnly: config.env === "production",
        secure: config.env === "production",
      });

      res.status(201).json(user)
    } else { 
      res.status(401).send("비밀번호가 일치하지 않습니다.")
    }

  } catch (error) {
    console.log(error)
    return res.status(500).send("로그인 에러발생")
  }
Choi Ga Young's avatar
Choi Ga Young committed
63
64
65
66
67
68
}

export default {
  signup,
  login
}