Passport란 무엇인가? Simple, unobtrusive authentication for Node.js 즉, node로 개발된 서버를 위한 인증 라이브러리이다. Passport는 다양한 인증 방식을 전략(Strategy)이라는 이름으로 제공한다. Passport는 말그대로 복잡한 인증 과정에서 복잡한 부분은 라이브러리에게 맡기고 개발자는 핵심 로직에 집중할 수 있도록 하기 위해 사용한다. 그러나 개발자는 이 복잡한 부분이 어떻게 수행되는지 정도는 알고 있어야 한다. 이 포스팅에서는 서버에서 직접 아이디와 비밀번호를 받아 처리하는 passport-local 방식을 이용해본다. passport-local passport-local은 사용자가 직접 입력한 아이디와 비밀번호로 인증을 수행한다. pass..
암호화가 필요한 이유? 만약 암호화를 하지 않고 사용자의 입력을 그대로(이를 평문이라고 한다) 저장하게 되면, 데이터베이스가 유출되었을 때 사용자의 비밀번호가 제3자에게 노출되게 되며, 이는 심각한 피해를 가져올 수 있다. 따라서 이러한 피해를 방지하기 위하여, 사용자의 비밀번호는 암호화를 거쳐 저장되어야 한다. 이번 포스팅에서는 그 중에서도 강력한 해시 알고리즘으로 유명한 bcrypt 를 이용해본다. 암호화된 패스워드의 생성 우선 bcrypt 모듈을 설치한다. npm i bcrypt 프로젝트에 적용하기 위해, 암호화된 비밀번호를 생성하는 간단한 함수를 구현해보았다. import { genSalt, hash } from 'bcrypt'; const saltRound = 10; const createHas..
node에서는 기본적으로 fs라는 모듈을 제공한다. 이를 통해 JSON 등 다른 파일을 읽어오고 사용할 수 있다. 1. JSON 파일 불러 와서 Object로 만들기 const fs = require('fs'); 별도의 install 없이, 다음과 같이 모듈을 import 함으로써 fs 모듈을 사용할 수 있다. js와 같은 디렉토리에 다음과 같은 doc.json 파일을 생성한다. { "name": "팬팬", "age": 3, "favorit": ["코딩", "노래", "메이플스토리"] } 일단 JSON 파일을 불러온 뒤 그냥 출력해보면, 결과는 다음과 같을 것이다. const doc = fs.readFileSync('doc.json'); console.log(doc); 이는 버퍼에 있는 16 진수로 이루..
npm init - package.json을 생성 + -y 옵션을 붙이면 모두 default 값으로 생성 npm install {패키지명}(@{버전}) --save(-S) --dev(-D) -g save: package.json의 dependencies에 추가한다. (이제 기본 옵션이 되어서 생략해도 된다.) dev: package.json의 devDependencies에 추가한다. 개발할 때에만 사용되는 모듈을 지정할 때 사용 g: global로 (해당 프로젝트 뿐 아니라 어디에서든 사용 가능) 설치 + npm install만 입력하고 실행하면 dependencies에 명시된 패키지들을 다운로드한다. + install도 i 라고 줄여 쓸 수 있지만 별 걸 다 줄인다. npm run {스크립트명}: pa..