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