221121 Node.js #8

김혜진·2022년 11월 21일
0

Node.js

목록 보기
8/13

MongoDB Atlas


ejs

인증

쿠키

: 부스러기
어떤 데이터든 원하면 저장할 수 있다.
브라우저의 종류에 따라서 독립적으로 동작.

npm install cookie-parser --save

webserver.js

// 쿠키
const cookieParser = require('cookie-parser');
app.use(cookieParser());

...

app.get('/count', function(req, res) {
    res.cookie('count', 1);
    res.send('count : ');
})

최초에는 쿠키가 없다가 서버에서 쿠키를 만들고 클라이언트로 보내준다.

웹브라우저가 count 요청을 했을때 서버가 쿠키값을 읽어서 웹브라우저로 다시 전송

app.get('/count', function(req, res) {
    if(req.cookies.count) {
        var count = parseInt(req.cookies.count);
    } else {
        var count = 0;
    }

    count = count + 1;
    res.cookie('count', count);
    res.send('count : ' + count);
})

쿠키를 사용할 때는 정말 중요하지 않는 정보 이외에는 암호화해서 사용하는 경우가 대부분이다.

세션

쿠키를 조금 더 보완한 방식
쿠키를 기본으로 사용, 더 안전하고 더 많은 데이터
쿠키의 기능 + 서버쪽의 데이터 저장공간
npm install express-session --save

webserver.js

const session =  require('express-session');
app.use(session({
    secret : '1111',
    resave : false,
    saveUninitialized : true
}))

app.get('/count', function(req, res) {
    if(req.session.count) {
        req.session.count++;
    } else {
        req.session.count = 1;
    }
    res.send('count : ' + req.session.count);
})


보안된 방식으로 저장된다.

로그인

// 로그인 라우터
app.get('/login', (req, res) => { 
    res.render('login.ejs');
})

app.post('/login', (req, res) => {
    let userid = req.body.id;
    let userpw = req.body.pw;

    console.log(userid)
    console.log(userpw)

    db.collection('login').findOne({id: userid}, function(err, result) {
        if(err) return console.log(err);

        if(!result) {
            res.send("존재하지 않는 아이디입니다.");
        } else {
            console.log(result);
            if(result.pw == userpw) {
                // res.send('로그인 되었습니다.')
                res.redirect('/');
            } else {
                res.redirect('/login');
            }
        }
    })
})
profile
알고 쓰자!

0개의 댓글