oris9

Express 라우터, 쿠키, 세션 플래시 본문

Node.js

Express 라우터, 쿠키, 세션 플래시

oris9 2024. 2. 20. 19:37

    Express 라우터 : 라우터를 개별파일이나 객체로 분리하고 그룹화해 복잡한 앱의 구조를 정리

     

     

     

    app.get('', (req, res) => {

    res.cookie('name', 'value')

    res.send('OK SENT YOU A COOKIE!!')

    }

     

    $ npm install cookie-parser

    (쿠기 파싱이 express 또는 그 패키지의 자체기능을 설정되어있어서 express밖에서 쓸려면 설치해줘야함)

     

    서명된 쿠키 : 무결성(데이터가 변함없는지), 유효성확인 (암호화가아님)

    res.cookie('name', 'value', {signed: true}

    - 일반 쿠키와 서명된 쿠키를 명확히 구분하기 위해서 일반적인 req.cookies로는 서명된 쿠키를 확인할 수 없음.

    req.signedCookies 로 확인해야함

     

    **쿠키파서로 설정한 비밀키를 변경할경우 그 비밀키로 서명되었던 모든 쿠키가 무효화됨

     

    HMAC 

    진정성(데이터가 같은 소스 또는 신뢰할만한 곳에서 왔는지)

     

     

     

    세션을 활용해서 인증을 실행하거나, 로그인상태를 유지가능

    : 쿠키와 비슷하게, 본질적으로 무상태 프로토콜인 HTTP에 상태성을 부여할 수 있음. 그렇지만 쿠키는 브라우저에, 세션은 서버측에 저장됨

    브라우저 쿠키에는 제한이 있음(크기, 갯수) + 안전하지 않음

    세션에서 브라우저에 저장되는 것은 세션을 여는 ID와 키뿐임 이걸 가지고 서버에서 가져옴

    Redis와 비슷(데이터를 단기저장할 때 쓰는 데이터베이스) -빠르고 가벼움

    '$ npm i express-session'

    미들웨어를 인스턴스화 할 때 세션함수에 비밀키를 전달해야함

    const sessionOption = { secret: ' ' , resave:false, saveUninitialize = false }

    app.use(sessionOption) 

    플래시 메세지 -  새로고침하면 사라지는 메세지

    'npm i connect-flash'

    'Node.js' 카테고리의 다른 글

    [Node.js] 미들웨어에 대해 알아보기  (0) 2024.03.02
    [Node.js] Node.js 란?  (0) 2024.03.01
    Mongoose express  (0) 2024.02.17
    [Node] npm  (0) 2024.02.04
    간단한 Express 실습  (0) 2024.01.21