typescript

    9. boilerplate - 미들웨어에 authorization 추가하기

    boilerplate 유튜브 강의 시리즈 Blog ReactJS NodeJS#14 AUTHENTICATION MIDDLEWARE 사버의 자원을 이용하기 위해서는 사용자는 인증(Authentication)을 통해 서버로부터 허가(Authorization)를 받아야 한다. 이번 강의에서는 미들웨어를 추가하여 Authorization을 구현했다. 사용자가 로그인을 통해 발급된 token으로 인증 요청을 보내면 미들웨어에서 토큰(인증수단)을 검증하고 올바른 경우 필요한 정보(자원)를 응답해준다. 이 로직을 만드는 것이 이번 강의 내용이다. 현재 강의까지 진행된 프로젝트 구조 src/server에 middleware폴더를 추가하고 admin, auth 파일을 생성했다. 1. auth.js 사용자로부터 요청이 오면..

    8. boilerplate - 로그인 구현 with jsonwebtoken

    boilerplate 유튜브 강의 시리즈 Blog ReactJS NodeJS#13 LOGIN FUNCTION WITH JSONWEBTOKEN 이번 강의에서는 JWT(jsonwebtoken)을 사용하여 로그인을 구현한다. JWT는 정보를 안전하게 전송하기 위해 정의된 공개된 표준 (RFC 7519) 이다. (자세한 설명은 여기) 1. jsonwebtoken 모듈 및 type definition 패키지 설치 npm i -S jsonwebtoken npm i -D @types/jsonwebtoken 2. UserSchema에 로그인 시 사용할 comparePassword, generateToken 메소드 추가 jsonwebtoken 모듈을 import 하고 UserSchema에 comparePassword, ..

    7. boilerplate - 해시 패스워드 with BCRYPT

    boilerplate 유튜브 강의 시리즈 Blog ReactJS NodeJS#12 HASH PASSWORD with BCRYPT 패스워드같은 보안 정보가 DB에 그대로 저장되면 안되기 때문에 암호화 기법 중 하나인 해싱 알고리즘 bcrypt를 적용하여 저장한다. 1. bcrypt 모듈 및 type definition 패키지 설치 npm i -S bcrypt npm i -D @types/bcrypt 2. user.ts 수정 mongoose 스키마의 pre 함수는 어떤 작업을 하기 직전에 실행되는 함수이다. 여기서는 user정보를 저장하기 전에 호출한다. password를 저장할 때만 bcrypt를 적용할 것이기 때문에 user.isModified('password') 의 조건일 경우에만 해시를 적용한다. ..

    6. boilerplate - 보안 파일 with ENV file

    boilerplate 유튜브 강의 시리즈 Blog ReactJS NodeJS#10 SECURE PRIVATE INFO with ENV file 몽고DB에 연결할 때 사용하는 사용자 비밀번호 같은 보안 정보는 따로 분리해서 가지고 있는 것이 좋다. 이번 강의에서는 config 폴더에 상용(prod), 개발(dev) 파일을 따로 만들었다. dev 파일에는 secret 변수들이 직접 저장되고 prod에는 dev와 같은 변수들이 저장되지만 환경 변수로 불러온다. 마지막으로 key 파일을 만들어 환경변수인 NODE_ENV의 값이 production이면 prod에 담긴 내용을 가져오고 production이 아니면 dev에 담긴 내용을 가져온다. 이번 강의까지 진행된 프로젝트 구조이다. config파일을 정의하기에 ..

    5. boilerplate - tsc-watch 설치

    boilerplate 유튜브 강의 시리즈 Blog ReactJS NodeJS#9 SET UP NODEMON 강의에서는 nodemon을 설치하지만 나는 typescript로 하고 있기 때문에 nodemon과 비슷한 tsc-watch를 설치하려고 한다. 이 모듈들은 파일의 변경사항을 감시한다. 코드를 수정하고 다시 저장 했을 때 서버를 자동으로 재시작해준다. 개발할 때 편리한 모듈이다. 1. tsc-watch 설치 npm i -D tsc-watch 2. package.json 스크립트 적용 "scripts": { "start": "tsc-watch --onSuccess \"node dist/src/server/index.js\"" }, 3. node 실행 npm start tsc-watch로 실행하면 파일의..

    4. boilerplate - postman을 이용한 http 요청/응답 테스트

    boilerplate 유튜브 강의 시리즈 Blog ReactJS NodeJS#8 Register Function using Postman 1. cookie-parser 모듈 및 type definition 패키지 설치 (나중에 사용!) npm i -S cookie-parser npm i -D @types/cookie-parser 2. json, URL-encoded, cookie 형식의 본문을 파싱하기 위해 아래와 같이 추가 ./src/server/index.ts import express from 'express'; const app = express(); const port = 3000; import mongoose from 'mongoose'; // 추가 import cookieParser from..