passport 모듈을 활용해 id와 passport를 이용한 기본적인 인증 방식을 구현해보자. Passport 모듈 추후에 SSO를 사용하여 사용자 로그인을 구현할 예정이므로 Passport 모듈을 이용해 로그인 기능을 구현해보겠습니다. 모듈 설치 및 연결 설치 npm i passport passport-local ...
passport 모듈
passport 모듈에 대해 알아보자. passport 모듈 passport 모듈은 이름에서 알 수 있듯이 여권처럼 서비스를 이용할 수 있도록 사용자 인증을 구현할 때 사용합니다. 즉, Client가 Server에 서비스를 요청할 때 passport 모듈을 이용해 사용자 인증을 성공할 때만 응답해주는 것을 말합니다. Strategy 전략...
로그인 페이지 만들기 - 07 (crypto)
Crypto 모듈을 이용해 비밀번호를 암호화해보자. 비밀번호 암호화 crypto 모듈을 이용해 비밀번호를 암호화해서 DB에 저장해보겠습니다. 먼저 미들웨어로 모듈화해 회원가입 시 사용자가 입력한 비밀번호를 암호화하는 함수와 로그인 시 사용자가 입력한 비밀번호를 검증하는 함수를 작성합니다. 이후 Controller에서 Model에 접근하기 전...
crypto 모듈
crypto 모듈로 암호화해보자. Crypto 모듈 crypto 모듈은 Node.js 에 내장되어 있는 내장 모듈 중 하나로 문자열을 암호화, 복호화, 해싱할 수 있도록 도와주는 모듈입니다. 예제 첫번째 방법 - createHash + update + digest 동기적으로 salt를 만든 후 비밀번호+salt를 ...
패스워드 암호화 Encryption
패스워드 암호화 패스워드 암호화 (Encryption)는 사용자가 입력한 비밀번호를 그대로 평문으로 저장하지않고 암호화한 후 암호화된 데이터를 DB에 저장하는 것을 말합니다. 사용자 인증 정보를 안전하게 보관하기 위해 꼭 필요한 작업으로 암호화 작업을 하지 않을 경우 해커가 서버의 사용자 데이터베이스에 접근하여 저장된 패스워드를 쉽게 볼 수 있습니...
로그인 페이지 만들기 - 06 (validator)
로그인 기능에 유효성 검사를 해보자. 로그인 유효성 검사 express-validator 모듈을 활용해 POST 요청으로 로그인 할 때 데이터가 서버나 데이터베이스 보내지기 전에 조건에 부합하는지 확인, 검증하는 작업을 구현해보겠습니다. 조건 설정 id 공...
express-validator 모듈
express-validator 모듈에 대해 알아보자. 유효성 검사 유효성 검사는 데이터가 서버나 데이터베이스 보내지기 전에 개발자가 만든 조건에 부합하는지 확인, 검증하는 작업을 말합니다. 간단한 예로 가입 절차를 진행하다가 “이미 가입된 아이디입니다.”, “비밀번호는 영문,숫자,특수문자가 혼합되어야 합니다” 등 사용자는 개발자가 원하는 조...
로그인 페이지 만들기 - 05 (cookie & session)
쿠키와 세션을 활용해 자동 로그인 기능을 구현해보자. 유저 정보 페이지 만들기 간단하게 사용자의 이름을 전달받으면 줄력해주는 페이지를 만들고 Router에 추가해줍니다. 로그아웃 기능도 같이 추가해줍니다. <!-- info.ejs --> <!DOCTYPE html> <html lang="ko"> <h...
express-session 모듈
express-session 모듈에 대해 알아보자. 세션 (Session) 이전 포스팅에서 살펴본 쿠키(Cookie)는 클라이언트 측에 저장되기 때문에 보안이 취약한 단점이 있습니다. 세션은 저장하는 주체를 클라이언트가 아닌 서버로 옮겨 보안이 취약한 단점을 보안해줍니다. 쿠키로 실제 데이터가 아닌 식별값을 주고 서버에서는 쿠키 값을 통해 ...
cookie-parser 모듈
쿠키에 대해 알아보자. 쿠키 (Cookie) 쿠키란 사용자가 어떤 웹 사이트를 방문할 때 서버를 통해 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 말합니다. HTTP는 Client의 요청 내용을 기억하지 않습니다. (HTTP의 stateless 특성) 즉, 쿠키는 Client의 상태를 알려주는 데이터입니다. MDN 웹문...