DEVELOP
[ 생활코딩 - Node.js 활용하기 ] 05. mySQL 버전 로그인 인증 ( local 방식 / facebook 방식)
BACKEND/Node.js 2022. 12. 5. 02:29

users 테이블 생성 - 테이블 생성 mysql> create table users( -> id INT NOT NULL AUTO_INCREMENT, -> authId VARCHAR(50) NOT NULL, -> username VARCHAR(30), -> password VARCHAR(255), -> salt VARCHAR(255), -> displayName VARCHAR(50), -> email VARCHAR(50), -> PRIMARY KEY(id), -> UNIQUE (authid)); - 결과 mysql> DESC users; +-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null |..

article thumbnail
[ 생활코딩 - Node.js 활용하기 ] 04. 인증을 쉽게 도와주는 PassportJS모듈
BACKEND/Node.js 2022. 12. 2. 18:26

# PassportJS : node.js express에서 사용하는 인증관련 미들웨어 - passport.js에서 다양한 인증 방법을 stragies로 제공 Passport.js Simple, unobtrusive authentication for Node.js www.passportjs.org # passport-local - 구글, 네이버 등을 거치지 않고 기본 id, password를 이용해 인증하기 npm install --save passport passport-local # 미들웨어 : 함수가 실행되면 해당 함수는 리턴값으로 콜백 함수를 리턴한다 사용자가 로그인에 성공하면 done(null, user); 실행 done(null, user); 이 실행되면 passport.serializeUser..

article thumbnail
[ 생활코딩 - Node.js 활용하기] 03. Security Password
BACKEND/Node.js 2022. 12. 1. 02:27

단방향 암호화 - md5 # 단방향 암호화 방법 - 원래의 문자를 암호화된 문자로 (암호화) 바꿀 수는 있지만, 암호화된 문자를 원래의 문자로 (복호화) 바꿀 수는 없다 - ex) md5 - md5로 유저의 비밀번호인 '111'을 암호화하면 '698d51a19d8a121ce581499d7b701668' 이 나오는데, user 의 회원정보 배열에 '111' 대신 이 문자를 넣는다. var user = { username: 'egoing', password: '698d51a19d8a121ce581499d7b701668', displayName: 'Egoing' }; - 로그인 시 회원정보와 입력받은 비밀번호를 비교하는 if문에서 입력받은 비밀번호인 pw 값도 md5로 암호화하여 비교하도록 한다. - 비밀번호..

article thumbnail
[ 생활코딩 - Node.js 활용하기] 2. Session
BACKEND/Node.js 2022. 11. 28. 20:49

Session의 개념 - coockie의 문제점 : 보안이 취약 # Session : 사용자 정보를 저장하는 또 다른 방법 - 클라이언트의 컴퓨터에는 오직 사용자의 식별자인 id값만을 저장 - 실제 데이터는 서버의 DB, 메모리 등에 저장 - 서버에 식별자를 전송하면 실제 데이터를 읽어옴 - 보안에 취약한 쿠키를 보완해주는 역할 - 구체적인 값을 저장하는 대신에 고유한 값을 전달 - connect.sid 값을 서버에 전달 - connect.sid 값이 같은 요청들은 같은 사용자의 접근이라고 간주함 - connect.sid 값으로 요청이 들어오면 서버에서 그 요청에 해당하는 count 값을 가져와서 1을 가져와 브라우저에 응답 - 쿠키 값이 사용자의 컴퓨터에 저장되는 것이 아니기 때문에 덜 위험 sessi..

article thumbnail
[ 생활코딩 - Node.js 활용하기] 1. cookie
BACKEND/Node.js 2022. 11. 27. 04:12

cookie의 개념 # cookie : 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각 - 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데이터를 함께 전송 - 쿠키는 두 요청이 동일한 브라우저에서 들어왔는지 아닌지를 판단할 때 주로 사용 - 사용자의 로그인 상태를 유지 가능 접속할 때마다 count 증가하기 # cookie-parser : 요청된 쿠키를 쉽게 추출할 수 있도록 도와주는 미들웨어 ▼ 설치 및 사용방법 cookie-parser Parse HTTP request cookies. Latest version: 1.4.6, last published: a year ago. Start using cookie-parser in your project by ..

article thumbnail
[코드잇 - Node.js 기본기] 4. 서드파티 모듈과 npm 제대로 배우기
BACKEND/Node.js 2022. 11. 26. 23:24

01. 서드파티 모듈 # package-lock.json : 설치된 서드 파티 모듈에 관한 정보 # node_modules : 서드 파티 모듈이 설치되는 디렉토리 - 설치된 서드파티 모듈들은 package.json 파일을 가진 디렉토리 형식으로 저장됨 # Node.js에서 모듈이 검색되는 순서 - 경로 없이 이름만 주어지면 해당 모듈이 코어모듈 혹은 서드파티 모듈이라고 인식 - package.json이라는 파일을 가진 디렉토리가 패키지다. - 하나의 서드 파티 모듈은 하나의 패키지다. - 서드 파티 모듈을 관리할 때 쓰는 npm은 node package manager의 줄임말이다. 2. package.json # package.json : 해당 패키지에 관한 정보를 가지고 있는 파일 - 서드파티 모듈은 ..

article thumbnail
[코드잇 - Node.js 기본기] 3. 초간단 웹서버 만들기
BACKEND/Node.js 2022. 11. 26. 22:34

01. 서버와 클라이언트 # 서버 : 클라이언트로부터 요청을 받아 응답을 내려준다. # 클라이언트 : 서버에 데이터를 요청하고 응답을 받는다. # 프로토콜(Protocol) : 클라이언트와 서버가 서로 통신하기 위해 사용하는 통신규약 - 클라이언트는 서버로부터 어떤 식으로 데이터를 보내줘야 하고, 서버는 어떤 식으로 데이터를 보내줘야 하는지에 관한 규약 - ex) ftp, telnetm ssh, pop3, smtp, http, https - 브라우저 주소 창에서 쉽게 볼 수 있는 http, https (http보다 더 안전한 방식, secure) 가 중요 # 127.0.0.1 : 컴퓨터 자기 자신을 나타내는 주소로 특별히 약속된 주소 - 외부의 서버와 통신하기 위해 사용되는 것x - 개발 시 테스트 용도..

article thumbnail
[코드잇 - Node.js 기본기] 2. Node.js 기본 개념 - ② 비동기 프로그래밍
BACKEND/Node.js 2022. 11. 26. 01:18

01. 비동기 프로그래밍과 콜백 # 동기실행 : 하나의 작업이 끝난 후 다른 작업을 실행하는 방식 - readFileSync 함수 # 비동기실행 : 특정 작업이 완료되었을 때 실행할 콜백을 등록해두고 바로 다음 코드로 실행을 넘기는 방식 - 비동기 프로그래밍 Node.js 환경에서 권장됨 - readFile 함수 # 비동기 프로그래밍 - 비동기 함수 사용 / EventEmitter 객체 사용 # readFile 함수 - 비동기 함수 - fs.readFile(path[,options], callback) - path : 내용을 읽을 파일의 경로 (필수적 인자) - options : 파일의 내용을 읽을 때 적용할 옵션 ( 선택적 인자 : 대괄호 안) - callback : 파일의 내용을 다 읽었을 때 실행될..

article thumbnail
[코드잇 - Node.js 기본기] 2. Node.js 기본 개념 - ① 모듈
BACKEND/Node.js 2022. 11. 24. 03:02

01. 모듈이란? # 모듈 : 전체를 이루는 부품 하나하나 - js 파일 하나 # require : 모듈을 로드해서 객체 1개를 리턴 - .js를 붙이지 않아도 가능 - 변수(let으로 선언)보다는, 상수(const)로 받는 것이 좋음 - let m = require('./math-tools.js'); - let m = require('./math-tools.'); 02. 모듈 내부의 함수 공개하기 # exports - exports.add = add; : add라는 함수를 외부에서도 add라는 이름으로 공개하겠다 - main.js let m = require('./math-tools.js'); console.log(m.add(1,2)); - math-tools.js function add(a, b) {..

article thumbnail
[ 코드잇- Node.js 기본기] 01. Node.js 시작하기
BACKEND/Node.js 2022. 11. 24. 01:35

01. Node.js가 무엇인가요? # Node.js : 또 다른 자바스크립트 실행 환경 - 웹 브라우저 밖에서도 자바스크립트를 실행할 수 있게 함 - 서버에서 사용되는 프로그램 만들 수 있음 - 자바스크립트만 알아도 하나의 웹 서비스 제작 가능 (백엔드) 02. Node.js 준비하기 https://nodejs.org/en/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org - 위 사이트에서 LTS 버전 설치 - LTS(Long Term Support) 버전 : 30개월동안은 해당 버전에서 발겨노디는 각종 버그에 대한 패치를 Node.js 커뮤니티로부터 보장받을 수 있음 - Current ..