[Nodejs] 쿠키, 세션, jwt 로그인
로그인 기능을 구현할 때, 일반적으로 쿠키 혹은 세션을 기반으로 구현한다. 쿠키는 클라이언트 측에 저장되는 데이터로, 이것을 서버 측으로 전달하여 인증 및 상태 유지가 가능하다. 세션은 서버 측의 데이터로, 클라이언트 측에서 요청을 보내면 해당 요청을 기반으로 클라이언트의 정보를 기억하고, 일정 기간 이후 만료된다. 위의 두 가지 방식으로 로그인을 구현하는 경우, 각각의 문제점이 존재하는데 쿠키 방식을 사용하는 경우, 보안의 문제가 발생한다. 1. 쿠키 데이터 발생 주체는 클라이언트이며 식별이 가능한 관계로 다른 컴퓨터로 로그인 한 경우, 해당 컴퓨터의 다른 이용자가 로그인 정보 식별을 할 수 있으며 2. 쿠키 만료 기간이 길게 설정된 경우, 로그아웃을 하더라도 쿠키가 유지될 수 있다는 문제점이 있다. ..
2023. 5. 6.
[Node js] 서버와 DB 연결하기 (MongoDB)
서버는 클라이언트로부터 특정 페이지를 보여달라는 요청이(GET) 발생하는 경우 해당 페이지와 함께 전달되어야할 데이터를 전달해야 한다. 예를 들어, 마이 페이지를 보여주어야 할 때, 페이지 구성을 담당하는 데이터 (HTML, CSS ,JS) 뿐만 아니라, 로그인한 사용자의 데이터를 전달 해주어야 한다. 이런 데이터들을 저장, 출력, 수정, 삭제를 위해 웹 서버와 DB를 연결한다. DB는 다양한 제품이 있으나, 여기에서는 mongo db를 이용하여 연결할 것이고, node js 라이브러리 중 mongodb와 통신이 가능한 라이브러리인 mongoose 를 사용한다. // 위치 : 프로젝트 폴더/schemas/index.js const mongoose = require("mongoose"); // mongod..
2023. 4. 29.
[Javascript] 콜백 함수란
자바스크립트에서 콜백 함수란 '파라미터로 함수를 받는 함수'라고 할 수 있다. 일반적인 함수의 경우에는 파라미터로 자료를 받아, 계산 후 특정 값을 반환하는데, 콜백 함수는 특정 값이 아닌 함수를 반환한다. for문에서 자주 사용되는 forEach가 그것이고, 다른 예로는 setTimeout이 있다. // 콜 백 함수 예제 1. forEach, 배열을 순회하며 배열 값 출력 number_list = [1, 2, 3, 4, 5]; number_list.forEach(function(x) { console.log(x); } ) // 예제 2. setTimeout, 3초 뒤 문자열 출력 setTimeout(function(){ console.log("Hi, everybody!"); }, 3000); A 데이터..
2023. 4. 13.