728x90 반응형 SMALL Do it 공부단9 [Node.js] 노드제이에스 - 토큰을 활용해 인증하기 Do it! Node.js 프로그래밍 입문 10일차 입니다. 토큰 방식 세션은 서버에 저장되어 있으면서 클라이언트에 있는 세션 ID와 비교해서 사용자를 처리했습니다. 반면에 토큰에는 사용자 정보를 비롯해 위조를 막는 서명에 이르기까지 인증할 때 필요한 모든 정보가 포함되어 있습니다. 특정 서버에 저장하는 것이 아니므로 서버 간에 공유할 수도 있습니다. 토큰을 사용하는 인증 방식은 상태가 없으므로 서버에서 사용자 상태를 저장하지 않습니다. 그 대신 토큰 안에 사용자를 증명하는 내용이 포함됩니다. 토큰 방식을 사용하는 이유 쿠키와 세션에서는 서버에 세션을 저장해 놓고 상태가 없는 http 프로토콜을 마치 상태가 있는 것처럼 사용합니다. 하지만 이 방법은 세션이 저장공간을 차지 한다는 단점이 있습니다. 이에 .. 2024. 2. 14. [Node.js] 노드제이에스 - cookie-parser 모듈 Do it! Node.js 프로그래밍 입문 10일차 입니다. 쿠키와 세션을 활용할 때 사용하는 모듈 npm install cookie-parser npm install express-session connect-mongo 명령어로 모듈 설치 쿠키 연습 const express = require("express") const cookieParser = require("cookie-parser") const app = express() app.use(cookieParser()) // cookie-parser을 미들웨어로 사용하겠다는 의미 app.get("/", (req, res) => { res.cookie("Kim", "1234", {httpOnly: true}) // res.cookie(name, val.. 2024. 2. 14. [Node.js] 노드제이에스 - 쿠키와 세션 Do it! Node.js 프로그래밍 입문 10일차 입니다. 쿠키와 세션 http 프로토콜의 가장 큰 특징은 상태가 없다는 것입니다. 이것의 의미는 서버 입장에서 GET 요청을 보낸 사용자와 POST 요청을 보낸 사용자가 같은 사람이라는 것을 알 수 없다는 것입니다. 요청을 보내고 응답이 끝나면 http 프로토콜이 클라이언트와 서버 사이의 연결을 끊어 버리기 때문입니다. http 연결 상태가 계속 유지되지 않으므로 이런것을 상태가 없다, 즉 stateless라고 합니다. 이러한 문제를 해결하기 위해 쿠키와 세션이 필요합니다. 쿠키를 이용해 사용자 식별 쿠키는 웹 브라우저를 이용할 때 사용자 컴퓨터에 저장되는 정보입니다. 쿠키는 사용자가 웹 사이트에 접속했을 때 컴퓨터에 다운로드되어 브라우저에 저장되는 작.. 2024. 2. 14. [Node.js] 노드제이에스 - 폼에서 라우트 처리 Do it! Node.js프로그래밍 입문 9일차입니다. 폼 폼은 웹 문서에서 사용자 입력을 받을 수 있는 형태를 가리키는 용어입니다. Login Form, Order Form, ... name 속성은 필수! 프론트엔드에서 폼을 다룰 때는 class, id 속성만 있어도 됩니다. 하지만 서버에서 폼 필드의 값을 인식할 때는 name 속성을 사용하므로 없다면 반드시 추가해야 합니다. 폼의 요청 방식은 GET과 POST뿐 입니다. 폼을 통해 정보를 서버로 보낼 때 사용할 수 있는 요청 방식은 GET, POST 뿐입니다. 이때 GET 방식에서는 주소 URL에 정보를 함께 넣어서 보내고, POST방식에서는 요청 본문, 즉 req.body에 정보를 담아서 보냅니다. PUT, DELETE 방식은 AJAX(Asynch.. 2024. 2. 13. [Node.js] 노드제이에스 - 템플릿 엔진 Do it! Node.js 프로그래밍입문 9일차 입니다. 템플릿 엔진 대부분의 웹 사이트나 애플리케이션은 사용자의 동작에 반응해서 서버에서 자료를 가져와 바뀐 내용을 보여주어야 합니다. 이렇게 내용이 동작으로 바뀌는 것을 처리할 때 사용하는 것이 템플릿 엔진입니다. 템플릿 엔진은 EJS, 퍼그, 핸들바 등이 있습니다. 템플릿 파일과 템플릿 엔진 데이터베이스에서 가져온 데이터 중 어떤 값을 어느 위치에 넣을지 미리 틀을 만들어 놓은 것을 템플릿 파일이라고 합니다. 여러 템플릿 파일을 만들고 데이터베이스에서 가져온 동적인 데이터를 템플릿 파일에 연결해 주는 역할을 하는 것이 템플릿 엔진입니다. EJS 기본 문법 뷰 엔진 설정하기 npm install ejs를 설치해줍니다. app.set(key, value).. 2024. 2. 13. [Node.js] 노드제이에스 - 미들웨어 함수 만들기 Do it! Node.js 프로그래밍 입문 공부단 6일차 입니다. next로 미들웨어 연결하기 미들웨어 함수 특성 미들웨어 함수는 요청객체나 응답객체를 변경하고 종료할 수 있습니다. 함수를 처리할 때 함수 안에서 응답이 종료되지 않고 그 결과를 다음 함수로 넘겨야 할 경우도 많습니다. 이때 next함수를 사용해서 다음 미들웨어 함수로 연결합니다. const requestTime = (req, res, next) => { // ... next() } app.use(requestTime) app.get("/", (req, res) => { res.status(200).send("Hello Node - 07") }) requestTime이라는 미들웨어 함수는 응답을 종료하지 않고 다음 미들웨어로 연결하기 위해.. 2024. 2. 8. [Node.js] 노드제이에스 - 미들웨어를 사용해 오류처리 Do it! Node.js 프로그래밍 입문 공부단 6일차 입니다. 상태코드와 err 객체 코드 메시지 설명 400 Bad Request 클라이언트 요청이 잘못되었거나 유효하지 않음 401 Unauthorized 권한이 없어 거절되었지만 인증을 다시 시도할 수 있음 403 Forbidden 권한이 없어 거절되었고 인증을 시도하면 계속 거절됨 404 Not Found 해당 데이터를 찾을 수 없음 500 Internal Server Error 서버에서 요청을 처리하는 동안 오류가 발생 오류 처리를 위한 미들웨어 함수의 기본형 const errorHandler = (err, req, res, next) => { // err : 발생한 오류의 여러 정보가 담겨있음 // err.message : 오류 메시지를 나타.. 2024. 2. 8. [Node.js] 노드제이에스 - 익스프레스의 요청 객체와 응답 객체 Do it! Node.js 프로그래밍 입문 공부단 5일차 입니다. 요청 객체의 주요 속성 속성 설명 req.body 서버로 post 요청할 때 넘겨준 정보를 담고 있습니다. req.cookies 쿠키정보를 담고있습니다. req.headers 헤더 정보를 담고있습니다. req.params url 뒤에 라우트 파라미터가 포함되어 있을 경우 파라미터 정보를 담고있습니다. req.query 요청 url에 포함된 질의 매개변수를 담고 있습니다. 응답 객체 함수 함수 설명 res.download 파일 다운로드 res.end 응답 프로세스 종료 res.json JSON 응답 전송 res.jsonp JSONP 지원을 통해 JSON 응답 전송 res.redirect 요청 경로 재지정후 강제 이동 res.render 뷰 .. 2024. 2. 7. [Node.js] 노드제이에스 - Path 모듈 Do it! Node.js 프로그래밍 입문 공부단 2일차 입니다. path 모듈 파일이나 디렉터리 경로를 다룰 수 있는 함수들이 포함되어 있습니다. path모듈이 필요한 이유는? 가장 큰 이유는 운영체제 간에 경로를 구분하는 구분자가 다르기 때문입니다. (윈도우 \, 맥 혹은 리눅스 /) 절대경로와 상대경로 절대경로 파일이나 폴더의 위치를 root폴더부터 시작해서 파일까지 전부 다 나타내는 것 상대경로 기준이 되는 파일이 있을 때 사용하는 경로 path모듈 가져오기 const path = require("fs") 경로 합치기 - join() // path.join(경로1, 경로2, ...) const path = require("path") const fullPath = path.join("some", .. 2024. 2. 3. 이전 1 다음 728x90 반응형 LIST