1. 폴더를 만든다
2. npm init -y를 이용해서 npm을 통한 packge.json 파일을 만든다.
3. npm install express [익스프레스를 설치한다]
[JWT토큰설정]
npm init
npm i jsonwebtoken -S
[Refresh토큰설정]
사용자의 인증정보를 , 서버에서 해당 사용자의 정보를 저장소 또는 별도의 DB에 저장하여 관리
서버에서 특정 Token 만료가 필요할 경우 저장된 Token을 제거하여 사용자의 인증 여부를 언제든지 제어가 가능
Refresh Token을 거쳐서 Access Token을 발급
사용자에게 발급한 Token이 탈취당할 경우 피해를 최소화 하기 위해서 사용
npm init -y
npm install express jsonwebtoken cookie-parser -S
[Sequelize설정]
npm i sequelize mysql2 -S
npm i sequelize-cli -D
npx sequelize init
https://sequelize.org/docs/v6/other-topics/migrations/
공식 문서를 참고
models 폴더 안에 index.js가 생성됨
config 폴더 안에 config.json 파일이 생성됨
migrations / seeder 폴더가 [빈폴더로] 생성됨
-> 모두똑같이 되어있다면 성공
주의!! 여기서 생성된 폴더나 파일들은 절대로 임의로 옮기지 마세요!
sequelize-cli는 정해진 경로에 있는 파일을 사용하고 저장하기 때문에 임의로 옮기면 오동작 할 가능성이 높아요!
-------------------------------------------------------------------------------------
[*몽구스를 사용할시 몽구스 설치한다]
npm install mongoose
npm init -y
npm i express mongoose jsonwebtoken -S
[미들웨어] 미들웨어를 통해 웹 서버의 요청/응답에 대해 공통적으로 관리가 가능
요즘은 어디서나 볼 수 있는 보안 연결 방법인 HTTPS를 지원하기 위해서는 https 모듈을 추가하고,
모든 요청과 응답을 기록하고 싶다면 로깅을 해주는 모듈을 추가하면 됩니다.
app.use(Middleware) : 모든 요청에서 미들웨어가 실행된다.
app.use(’/api’, Middleware) : api로 시작하는 요청에서 미들웨어를 실행한다.
app.post(’/api’, Middleware) : api로 시작하는 POST 요청에서 미들웨어를 실행한다.
[Access토큰]
Cookie로 jwt를 발급하고 설정한 Expire 기간이 지날 때 인증이 만료되게 하는것 또한 Access Token
사용자가 Access Token을 가지고 인증을 요청할 경우 Token을 생성할 때 사용한 비밀키(Secret Key)를 가지고 인증하기 때문에, 복잡한 설계없이 코드를 구현할 수 있고, 여러 분기를 거치지 않아도 된다는 장점
Stateless(무상태) 즉, Node.js 서버가 죽었다 살아나더라도 동일한 동작을하는 방식입니다. 즉, jwt를 이용해 사용자의 인증 여부는 확인할 수 있지만, 처음 발급한 사용자 본인인지 확인할 수는 없습니다. 🥲
Access Token은 그 자체로도 사용자를 인증하는 모든 정보를 가지고 있습니다. 그렇기 때문에 토큰을 가지고 있는 시간이 늘어날 수록 탈취되었을 때는 피해가 더욱 커지게 됩니다.
'개발지식' 카테고리의 다른 글
| MYSQL 설치 / VSCODE랑 연결하기 (0) | 2022.12.07 |
|---|---|
| vscode cmd clear / 터미널 화면 내용지우기 (0) | 2022.11.18 |
| 브라우저렌더링 SSR과 CSR 의 차이점 (0) | 2022.11.17 |