본문 바로가기

node.js

[Node.js] PBKDF2 비밀번호 암호화하기 1. 서론 사용자들의 비밀번호 정보를 DB에 저장할 때는 반드시 암호화가 필요하다. 그러기 위한 가장 일반적인 방식이 바로 PBKDF2 방식이다. 오늘은 이 방식이 무엇인지? 그리고 node.js에서는 어떻게 구현할 수 있는지에 대해 알아보자. 2. PBKDF2(Password-Based Key Derivation Function Version 2)란? PBKDF2는 미국 NIST에서 승인받은 사용자 패스워드를 기반으로 키(Key) 유도를 하기 위한 함수이다. 사용자 패스워드에 해시함수, 솔트(Salt), 반복 횟수 등을 지정하여 패스워드에 대한 다이제스트(Digest)를 생성하는 방식이다. Salt란? 비밀번호를 암호화하기 위한 키 값 (절대 외부로 유출되서는 안됨) Digest란? 비밀번호를 Salt.. 더보기
[Node.js] slack 연동하기(알림봇 구현) 1. 서론 요즘 협업에서 가장 핫한 communication tool 중 하나는 slack이다. 회사라는 공적인 공간과 집이라는 사적인 공간이 분리된 것처럼, 의사소통 또한 사적인 공간(카카오톡, 인스타 DM 등)과 공적인 공간(slack)을 나누는 것이다. 또한, 공적인 공간에서도 업무에 따른 채널을 생성하며 순도 높은 대화를 이어갈 수 있다. 이렇게 최근 협업 및 스타트업에서 많이 사용하는 slack을 통해 알림봇을 구현한다면 사용자들의 실시간 구매 알림 등으로 편리하게 사용 및 확인할 수 있다. 2. slack token 발급 전제 조건 당연히 slack 계정은 존재해야 한다. google login 기능도 있으니 사용하길 바란다. 다소 복잡한 감이 있으니 잘 따라오기 바란다. 우선, 채팅을 위한 .. 더보기
[Node.js] Socket.io 간단한 채팅 구현하기 1. 서론 오늘은 socket.io를 통한 웹소켓 연결을 진행해보도록 하자. 이번에는 간단하게 html 클라이언트와 연결해서 간단한 채팅을 구현해볼 예정이다. 크게 어려운 부분은 없으므로 잘 따라오면 socket.io가 이런 거구나 정도는 이해할 수 있을 것이다. 2. 결과 화면 UI는... 말을 아끼자... 일단 아래의 코드를 작성 후 실행하면 이렇게 채팅이 최종적으로 구현된다. 3. 환경 설정 개발 환경은 특별한 점은 없고 아래와 같이 코드를 작성할 폴더와 필수적인 모듈을 설치해보자. socket.io는 반드시 2.3.0 버전을 아래와 같이 설치해야한다. # 폴더 생성 및 열기 mkdir socketio-practice cd socketio-practice # package.json 생성 npm in.. 더보기
[Node.js] passport Google OAuth 2.0 로그인 사용하기 인증 방식 정리하기 1. Session 기반 인증 방식 2. JWT 기반 인증 방식 3. OAuth 2.0 기반 인증 방식 인증 방식 구현하기 [Node.js] express session 사용하기 [Node.js] passport session 사용하기 [Node.js] JWT 사용하기 [Node.js] passport Google OAuth 2.0 로그인 사용하기 1. 서론 지난 포스팅에서 OAuth 2.0이 무엇이고 종류에 따른 인증 방식에 대해 알아봤다. 그럼 실제로 node.js에서 OAuth 2.0을 통한 구글 로그인을 구현해보도록 하자. 이 포스팅에서 구글 로그인을 구현할 때 사용할 모듈은 passport로 passport로 session을 관리하는 부분이 포함되기 때문에 만약 잘 모르는 부.. 더보기
[Node.js] passport session 사용하기 인증 방식 정리하기 1. Session 기반 인증 방식 2. JWT 기반 인증 방식 3. OAuth 2.0 기반 인증 방식 인증 방식 구현하기 [Node.js] express session 사용하기 [Node.js] passport session 사용하기 [Node.js] JWT 사용하기 [Node.js] passport Google OAuth 2.0 로그인 사용하기 1. 서론 지난 포스팅까지 express-session, jwt에 대한 이론과 실제 모듈 사용까지 진행해봤다. 지난 포스팅까지는 login, logout에 별다른 모듈을 쓰지 않고 구현했지만 오늘은 passport.js를 사용해서 구현해보려 한다. passport.js는 OAuth 2.0을 지원하는 모듈로써 로컬에서 동작하는 로그인도 당연히.. 더보기
[Node.js] JWT 사용하기 인증 방식 정리하기 1. Session 기반 인증 방식 2. JWT 기반 인증 방식 3. OAuth 2.0 기반 인증 방식 인증 방식 구현하기 [Node.js] express session 사용하기 [Node.js] passport session 사용하기 [Node.js] JWT 사용하기 [Node.js] passport Google OAuth 2.0 로그인 사용하기 1. 서론 지난 포스팅에서는 JWT 기반 인증 방식에 대해 알아봤다. 이번엔 Node.js로 JWT를 직접 구현해보도록 하자. 구현 방법은 어렵지 않으나 이 포스팅에서는 jsonwebtoken을 사용한 토큰의 발급과 만료 기간 설정 등 기본 개념에 대한 구현만 하도록 하겠다. 운영하려는 서비스마다 JWT를 사용하는 방식이나 메모리 적재 여부.. 더보기
[Node.js] express session 사용하기 인증 방식 정리하기 1. Session 기반 인증 방식 2. JWT 기반 인증 방식 3. OAuth 2.0 기반 인증 방식 인증 방식 구현하기 [Node.js] express session 사용하기 [Node.js] passport session 사용하기 [Node.js] JWT 사용하기 [Node.js] passport Google OAuth 2.0 로그인 사용하기 1. 서론 지난 포스팅에서 Session 인증 방식에 대해서 알아봤다. 그렇다면 Node.js로 어떻게 Session 인증 방식을 구현할 수 있을까? 이번 포스팅에서는 Session의 저장 방식 3가지(메모리, 디스크 또는 DB) 모두를 간단하게 구현해보도록 하겠다. 만약 Session 인증 방식에 대한 기본 개념이 명확하지 않다면 지난 포.. 더보기
[Node.js] express static folder 지정하기 1. 서론 처음 내가 Node.js로 웹사이트를 개발할 때 로컬에서 html 파일을 브라우저로 켰을 때는 css, js, image 파일들이 모두 제대로 적용됐는 데, node.js로 html 파일을 구동하면 아무것도 적용되지 않는 것이 너무 당황스러웠다. 뭔가 잘못된 것인가 하다가 로컬에서 html 파일을 구동할 때의 static files(css, js, image 등)와의 상대 경로와 node.js 서버를 사용하여 구동할 때의 상대 경로가 전혀 다르다는 것을 인지했다. 이 것을 해결하기 위해 static folder를 지정할 수 있고, 서버에서는 해당 static folder에 접근해서 static files를 가져온다. 따라서, html 파일을 작성할 때도 해당 url로 static files(c.. 더보기