auth.controller.js 1.2 KB
Newer Older
이재연's avatar
이재연 committed
1
2
3
4
5
6
7
8
9
10
11
import User from '../schemas/User.js'
import bcrypt from 'bcryptjs'
import jwt from 'jsonwebtoken'
import config from '../config.js'

const login = async(req,res)=>{
    const {id, password} =req.body
    console.log(id,password)
    try{
        const user=await User.findOne({id}).select('+password')
        if(!user){
이재연's avatar
이재연 committed
12
            return res.status(404).send(`${id}가 존재하지 않습니다.`)
이재연's avatar
이재연 committed
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

        }
        const passwordMatch= await bcrypt.compare(password, user.password)

        if(passwordMatch){
            const token=jwt.sign({userId:user._id},config.jwtSecret,{
                expiresIn:'3d'
            })
            res.cookie('token',token,{
                maxAge:config.cookieMaxAge,
                httpOnly:true,
                secure:config.env ==='production'
            })
            res.send('로그인 되었습니다.')
        }else{
이재연's avatar
이재연 committed
28
            res.status(401).send('비밀번호가 일치하지 않습니다.')
이재연's avatar
이재연 committed
29
30
31
        }
    }catch(error){
        console.log(error)
이재연's avatar
이재연 committed
32
        res.status(500).send('로그인 실패. 다시 시도하세요.')
이재연's avatar
이재연 committed
33
34
35
    }
}

이재연's avatar
이재연 committed
36
37
38
39
40
// const logout =(req,res)=>{
//     res.clearCookie('token')
//     res.send('로그아웃 되었습니다.')
// }

이재연's avatar
이재연 committed
41
export default {login}