Cooka프로젝트/로그인기능 3

crypto모듈을 사용해 암호화

✔ 암호화란 ? 웹 개발에서 암호화 모듈 또는 라이브러리를 사용하는 주요 이유는 보안과 개인정보 보호입니다. 암호화는 데이터를 안전하게 전송하고 저장하기 위한 핵심 도구 중 하나입니다. 로컬 환경에서 테스트목적의 프로젝트가 아니라, 외부에 배포+로그인 기능이 존재한다면 비밀번호는 무조건 암호화를 해야합니다. 기본적으로 web개발시 클라이언트의 로그인정보를 데이터베이스에 저장하게됩니다. 기본적인 보안이 되있더라도, 그보안이 뚫린다면 클라이언트의 정보는 노출되게 됩니다. 이런경우를 위해 비밀번호를 암호화해서 클라이언트의 정보가 노출되더라도 확인하기 어렵게 만드는것입니다. ✔ Crypto Node.js 에 내장되어 있는 내장 모듈 중 하나로 문자열을 암호화, 복호화, 해싱할 수 있도록 도와주는 모듈입니다. c..

express-session 이용한 로그인 구현

공식문서에 따른 express-session의 기본 설정 방법입니다 import express from "express"; import session from "express-session"; import * as expressSession from "express-session"; import mysqlSession from "express-mysql-session"; const app = express(); const MySQLStore = mysqlSession(expressSession); const sessionStore = new MySQLStore({}, pool as any); //저장소를 mysql로 한다. //session 미들웨어를 사용하여 req.session 객체를 사용할수있게 된..

session 이란 ?

session 이란 ? web을 운영할때, 다수의 클라이언트의 로그인을 관리를 하는것에 대해 난관에 부딪혔다. 크게 3가지의 관리방법이 있는것으로 보인다. cookie session JWT 여기서는 session에대해 알아보기로 하자. Session이란 ? 세션(session)은 컴퓨터 과학에서, 특히 네트워크 분야에서 반영구적이고 상호작용적인 정보 교환을 전제하는 둘 이상의 통신 장치나 컴퓨터와 사용자 간의 대화나 송수신 연결상태를 의미하는 보안적인 다이얼로그(dialogue) 및 시간대를 가리킨다. 따라서 세션은 연결상태를 유지하는 것보다 연결상태의 안정성을 더 중요시 하게 된다. - 위키백과 쉽게말해 , 일정 시간동안 클라이언트의 요청을 하나의 상태로보고 그상태를 유지하는 방법이다. 구체적으로는, ..