일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- nodejs
- JavaScript
- frontend
- react
- API
- Component
- clonecoding
- CSS
- pug
- 자바스크립트
- form
- HTML
- TypeScript
- DART
- node.js
- NextJs
- ES6
- javscript
- graphQL
- CLONE
- Flutter
- ECMAScript
- backend
- heroku
- GRID
- 리액트
- Session
- MongoDB
- express
- Mongoose
- Today
- Total
목록Session (7)
Enjoy Programming
https://github.com/vvo/iron-session GitHub - vvo/iron-session: 🛠 Node.js stateless session utility using signed and encrypted cookies to store data. Works with N 🛠 Node.js stateless session utility using signed and encrypted cookies to store data. Works with Next.js, Express, NestJs, Fastify, and any Node.js HTTP framework. - GitHub - vvo/iron-session: 🛠 No... github.com 기존 jwt 토큰은 암호화 되지 않는다. 이..

간단하게 Cookie의 property에서 중요한 정보를 좀 짚고 넘어가자 그보다 먼저 express-session에 secret prop에 대해 알아본다. secret은 쿠키에 sign할때 사용하는 string이다. 쿠키에 sign? 이 말은 backend가 쿠키를 발행했다는 것을 보여주는 것이다. 나의 쿠키를 누군가 해킹해 나인척 하는 session hijack에서 보호하기 위해 secret string이 필요하다 이 string은 매우 길고 무작위이며 강력해야 한다. 이 강력한 string으로 쿠키를 sign하고 나의 backend가 만든 것임을 증명한다. . Domain . Domain은 해당 쿠키를 만든 backend가 누구인지 나타낸다. 그리고 쿠키는 해당 Domain에 있는 backend로만..

session을 이용해 데이터베이스에 session data를 저장하는 코드이다. resave, saveUninitialized가 있는데 이에 대해 좀 더 알아보자. 먼저 브라우저에서 쿠키값을 지워가며 refresh해주면 위 코드로는 지속적으로 mongoStore에 저장된다. 만약 로그인 할 유저가 아닌 bot이라던지 의미 없는 사용자가 거쳐가는 것만으로도 저장이 된다면 매우 불필요한 작업일 것이다. 그리고 브라우저에 접근한 사람이 많을 수록 비용도 거대해 질 것이다. 이를 해결하기 위해 모든 방문자에 대해 쿠키를 생성하지 않는 방법을 접근해보자. 모든 유저에게 주지 않고 로그인한 사용자에게만 쿠키를 생성한다. 먼저 resave와 saveUninitialize를 false로 바꿔주자. 그리고 db의 se..

기본적으로 express session은 cookie는 id만 저장할 뿐 data는 서버 store에 해야한다. default session storage는 Memory store이고 실제 사용하기 위해 있는 것이 아니다. session을 유지 하기 위해서는 메모리가 아닌 서버 데이터베이스를 사용해서 session을 저장해야 한다. 먼저 필요한 모듈인 connect-mongo를 설치해주자 그리고 app.js에 import 해준다 session을 MongoStore에 할당하고 CookiStore에 넣어준다 그리고 session미들웨어에서 store 옵션을 주자 new생성자로 CookieStore란 store를 생성해주고 CookieStore와 mongoDB를 연결해준다. 아 mongoose를 import ..

바로 들어가자 npm i express-session 익스프레스 세션을 설치 해주고 app.js에 import passport로 초기화및 세션을 저장해주기 전에 사용해 주자 session은 option을 지정해 주는데 쿠키나 도메인을 원하는데로 바꿔줄 수 있고 유효기간도 설정해 줄 수 있다. 그중 중요한 옵션인 secret을 지정해주자 - random string으로 쿠키에 있는 session ID를 암호화 하기 위한 것이다. session id를 보낼때 실제로 그 값을 그대로 보내진 말자.. 중요정보다 암호화 해주자 randomkeygen.com/ RandomKeygen - The Secure Password & Keygen Generator RandomKeygen is a free mobile-fri..

자 이제 기존에 설정한 로컬 미들웨어를 수정해보자 기존에는 가짜 인증을 만들어서 로그인을 시켰었고 이제는 실제 정보가 있다 res.locals.user = req.user - passport가 user정보를 object로 만들어서 이 정보를 request에 올려준다. 이로써 template들이 local로 유저정보에 접근할 수 있게 해준다. 아 그리고 한가지 or null을 쓴 이유는 유저 정보가 없으면 템플릿에 뿌려줄 정보가 없다.. 이때는 null을 넘겨주도록 하자. 그리고 app.js로 가자 cookieparser 밑에 passpor모듈을 임포트 해줬다. 그리고 passport.js도 import 해주자. 그리고서 localsmiddleware위에 이 두녀석을 사용해 주자. 이렇게 작성하면 cook..