본문 바로가기
728x90

백엔드25

[NodeJs] 로그인 사용자 정보를 JWT로 인증하기 [NodeJs] 사용자 정보를 JWT를 통해 인증하기 Json Web Token ⭐️ NodeJs로 서버를 열고 로그인을 구현하면서 사용자 인증을 하는 방법은 쿠키나 세션을 사용 하는 법 등 다양한 방법이 있는데, 최근 많이 사용하고 있는 JWT (Json Web Token)를 통해 NodeJs Express 환경에서 로그인 RestAPI를 구현하면서 토큰을 통한 사용자 인증을 예제를 통해 알아보기로 한다 ⭐️ 구동 로직 Express를 통한 로그인 Rest API 내 JWT (Json Web Token) 모듈을 이용한 사용자 인증 방식 🌈 로그인 예제 회원 가입 : 비밀번호 암호화 및 회원 정보 토큰생성하여 클라이언트에게 json 전송 (비밀번호 암호화는 bcrypt 모듈 사용, 하단 링크 참조) ht.. 2021. 8. 5.
[NodeJs] 비밀번호 해쉬 저장 하기 bcrypt [NodeJs] 사용자 비밀번호 해쉬값으로 변환하여 저장하기 Bcrypt ⭐️ NodeJs 를 통하여 로그인 기능을 구현할때 아이디와 비밀번호 등의 사용자 정보를 서버에 저장하는데 이때 비밀번호를 암호화 하지않고 그대로 저장하는 것은 범죄가 될 만큼 서버를 구성하는 프로그래머에겐 사용자의 정보를 암호화 하여 저장하는 일은 필수이다 ⭐️ 하지만 암호화라는 것을 그냥 네이티브하게 구현하기 위해서는 까다로운 면도 있고 안전성도 보장할수 없는데 이를위해 비밀번호 암호화를 간단하게 처리할수 있는 npm 모듈인 bcrypt를 소개하고자 한다 🌈 사용 예제 NodeJs (Express) 를 통한 로그인 RestfulAPI 내에서 회원가입시 사용자의 비밀번호 정보를 해싱하여 저장 로그인시 해쉬값과 입력한 비밀번호를 비.. 2021. 8. 5.
[NodeJs] Express 서버에서 손쉽게 유효성 검사하기 express-validator [NodeJs / Express] 서버에서 손쉽게 데이터 유효성 검사하기 express-validator ⭐️ 서버에 전송되는 데이터의 유효성 검사는 빠를 수록 좋다. 왜냐하면 유효하지 않은 데이터를 굳이 가공하는데 비용을 낭비할 필요가 없기 때문이다 ⭐️ 데이터 유효성 검사의 방법은 여러가지가 있지만 간단한 예로 회원가입시 회원가입 정보가 서버에 전달이 되었을때 아래의 데이터 기준에 부합하는 유효성 검사를 직접 구현 한 것과 express-validator를 사용한 두가지 예제를 통해 구현의 복잡성을 비교하기로 한다. ⭐️ 데이터 유효성 기준 아이디의 공백여부 및 최소 글자수 (3글자 이상) 최대 글자수 (20글자 미만)을 기준으로 유효성 검사를 하여 유효성 검사 기준에 부합할시 가입 성공 메시지 응답.. 2021. 8. 3.
[NodeJs] 모듈 (export, require) NodeJs 모듈 export, require 규모있는 프로젝트를 위해서는 연관된 기능들을 한 파일 내에 모듈화 하여 사용하는 게 좋다 다시말해 다른 js 파일 내 코드를 원하는 js 파일에서 사용할수 있도록 하는 것을 모듈화 한다고 한다. ⭐️ 샘플 예제 main.js에서 같은 경로에 있는 template.js에 있는 blog, url 값을 받아서 출력 [template.js] //template.js const blog = 'goodmemory'; const url = 'https://goodmemory.tistory.com'; module.exports.blog = blog; module.exports.url = url; [main.js] //main.js const template = requir.. 2021. 7. 26.
[NodeJs] npm 특정버전 / 이전버전 / 원하는버전 설치 하기 [NodeJs] npm (Node Package Manager) 특정 / 이전 / 원하는 버전 설치하기 최신 버전 npm 설치 //특정 모듈 최신 버전 설치 //npm install 모듈명 npm install npm 하지만 위와같은 방법으로는 최신 버전만 설치 되기 때문에 원하는 버전이나 특정 버전을 필요로하는 사용자는 아래와 같이 입력해야 한다 특정 버전 npm 설치 //특정 버전 설치를 위해서는 //npm install 모듈명@버전 npm install npm@7.11.1 2021. 6. 9.
[NodeJs] 구글 아이디로 로그인 하기 구현 (이메일 등 정보 받아오기) NodeJs 구글 아이디로 로그인 (Login with Google) 기능 구현 feat. Passport npm 패키지 설치 [express, express-session, session-file-store, passport, passport-google-oauth ] //터미널에서 npm 패키지 설치 npm install -s express npm install -s express-session npm install -s session-file-store npm install -s passport npm install -s passport-google-oauth 구글 개발자 도구 웹 페이지에 접속 https://console.cloud.google.com/apis/dashboard Google Clo.. 2021. 5. 8.
[NodeJs] 페이스북으로 로그인하기 구현 (이메일 등 정보 받아오기) NodeJs 페이스북 로그인 (Facebook Login) 기능 구현 (PassPort 패키지 활용) npm 패키지 설치 [express, express-session, session-file-store, passport, passport-facebook ] //터미널에서 npm 패키지 설치 npm install -s express npm install -s express-session npm install -s session-file-store npm install -s passport npm install -s passport-facebook 페이스북 개발자 도구 웹 페이지에 접속 https://developers.facebook.com/ 페이스 북 개발자 웹에서 오른쪽 위 내 앱 클릭 다음 페이지에.. 2021. 5. 5.
[NodeJs] 사용자 비밀번호 암호화 하기 bcrypt [NodeJs] 사용자 비밀번호 암호화 하여 저장하기 bcrypt nodeJs / javascript 로 구축한 웹서비스에 회원가입 및 로그인 기능을 추가하였을때 클라이언트의 아이디와 비밀번호를 서비스를 위해 데이터베이스에 저장하게 되는데 이때 비밀번호를 암호화 하지 않고 저장하면 안된다. 사용자의 비밀번호가 웹서비스 제공자에게 노출될 위험이 있기 때문이다. 그래서 의무적으로 웹서비스시 사용자 정보를 저장할때는 암호화를 거쳐야 한다. 관련 모듈은 여러가지가 있지만 비교적 구현이 쉬운 bcrypt를 다루어 보겠다. npm bcrypt 설치 //터미널에 입력, npm 설치 npm install bcrypt 간단 샘플코드 //bcrypt 선언 const bcrypt = require('bcrypt'); //해.. 2021. 4. 29.
[NodeJs] 간단하게 데이터 베이스 사용하기 lowdb NodeJs 간단하게 데이터 베이스 사용하기 npm lowdb lowdb를 이용하면 간단하게 nodejs환경에서 데이터 베이스의 사용이 가능하다. 사용법 또한 간단하여 json방식으로 sql 언어 없이 쉽게 데이터를 관리할수 있다. 설치하기 npm install lowdb 사용하기 //lowdb 선언 const low = require('lowdb'); //lowdb 동기식으로 관리 const FileSync = require('lowdb/adapters/FileSync'); //동기식으로 관리할 데이터베이스 json 파일 경로 설정 const adapter = new FileSync('db.json'); //lowdb 사용 변수 설정 const db = low(adapter); //json 파일내 테이.. 2021. 4. 27.
[NodeJs] Javascript로 엑셀 파일 생성 및 저장 불러오기 NodeJs를 활용하여 Javascript로 엑셀 파일 생성 및 저장 불러오기 javascript로 데이터를 저장할때 xlsx 로 저장을 많이 하게되는데 구현 방법은 아래와 같이 간단하다. 샘플 코드 // Excel Test //로직 흐름 : //엑셀 워크북 생성 -> 엑셀 시트 생성 -> 대표행(타이틀행) 설정 및 입력 -> 데이터 입력 -> 저장 //비동기 함수 생성 async function ExcelTest(){ //엑셀 워크북 생성 및 시트 생성 const workbook = new Excel.Workbook(); const worksheet = workbook.addWorksheet("My Sheet"); //대표행(타이틀행) 설정 및 입력 worksheet.columns = [ {header.. 2021. 4. 24.
728x90