Programming Language/Node.js(24)
-
로그인, 인증 기능 구축 프로젝트[미니 프로젝트 1] - 01. jwt를 이용한 인증 앱 생성하기 : 07. RefreshToken으로 accessToken 생성하기
이전에 만들었던 refreshToken을 사용해서 만료된 accessToken을 다시 생성해주도록 하자 1. Cookie에 담긴 refreshToken받아오기기존에 accessToken의 경우는 요청에 담는 과정이 필요했었는데 쿠키의 경우는 따로 요청에 추가해주지 않더라도 자동으로 가져가게 되어 있다. 이 쿠키를 확인하는 메서드를 서버에 추가해서 확인해보면url은 '/token'으로 설정해주고 쿠키의 값은 요청, req안에 cookies라는 속성 내부에 저장되어 있다.콘솔로 이 값을 출력해보면값을 찾아오지 못한것을 볼 수 있다. 이는 기존에 req에 응답을 받아올 때를 확인해보면 이 부분이 필요한 이유와 동일하다. 더보기req.cookies로 바로 값을 사용하지 못하는 이유 기본적으로 HTTP 요청..
2025.03.22 -
로그인, 인증 기능 구축 프로젝트[미니 프로젝트 1] - 01. jwt를 이용한 인증 앱 생성하기 : 04. RefreshToken에 대해서
1. Access Token의 단점탈취 시 즉시 API 접근 가능 (보안 취약)Access Token이 탈취되면, 공격자가 토큰을 사용하여 API 요청을 수행할 수 있다.토큰에는 인증 정보가 포함되어 있어, 탈취되면 제3자가 사용자의 권한으로 API를 호출이 가능하게 되고 이렇게 보호되지 않은 사이트의 경우는 CSRF(크로스 사이트 요청 위조), XSS(크로스 사이트 스크립팅) 등의 공격에 취약하게 된다. 만료되면 다시 로그인해야 함Access Token은 일반적으로 수명이 짧기에(15분 ~ 1시간) 만료되면 사용자는 새 Access Token을 얻기 위해 다시 로그인해야만 한다. Access Token은 자체적으로 취소(Revoke)할 수 없음Access Token은 JWT 기반이므로 한 번 발급되면 ..
2025.02.13 -
로그인, 인증 기능 구축 프로젝트[미니 프로젝트 1] - 01. jwt를 이용한 인증 앱 생성하기 : 03. 토큰을 이용해서 요청 보내기
1. 인증을 위한 미들웨어 생성먼저 클라이언트에서 토큰을 받을 텐데 클라이언트에서 토큰이랑 같이 정보를 보낼텐데 이 토큰은 요청의 requet.header['authorization']에 들어 있게 된다.그래서 인증 하는 미들웨어에서 받을때 토큰에 있는 헤더에서 요청한 값을 가져오게 될것이다.근데 우리는 이 토큰을 포스트맨을 사용해서 직접 넣어서 보내줘야 한다.이전에 토큰을 요청하는 메서드를 통해 토큰을 받은 다음에포스트맨 URL창 밑에 Authorization을 선택Auth Type을 Bearer Token을 선택해준 후에 옆창에 생성되는 토큰 입력 칸에 토큰을 넣어주자.그러면 헤더 안에 Authorization에 자동으로 넣어주게 된다. 이를 통해서 먼저 토큰을 서버로 요청의 헤더에담아 보내주는 부분..
2025.02.13 -
Node 프로젝트의 gitignore 작성법
Node.js 프로젝트에서 git으로 commit 할때 제외되어야할 파일에 대한 설명을 작성한다.아래는 gitignore를 작성할때 추가될 목록과 그 이유에 대한 설명이다. 1. node_modules/ (패키지 폴더)node_modules/ 폴더에는 npm install을 통해 설치된 패키지들이 저장되기에 Git에서 관리할 필요가 없으며, 필요하면 package.json을 기반으로 언제든 다시 설치 가능하다.node_modules/ 폴더는 수천 개의 파일로 이루어져 용량이 크므로, Git에 포함하면 리포지토리 크기가 불필요하게 커지기에 추가되지 않도록 해야한다.node_modules/ 2. logs/, *.log (로그 파일)logs/ 폴더에는 서버 실행 로그, 오류 로그 등이 저장된다로그 파일은 실행..
2025.02.11 -
로그인, 인증 기능 구축 프로젝트[미니 프로젝트 1] - 01. jwt를 이용한 인증 앱 생성하기 : 02. 간단한 인증 시스템 구현
2. 간단한 인증 시스템 구현이제 전에 배웠던 JWT의 인증 과정을 실제로 소스코드로 구현해보자. 2-1. 기본 세팅먼저 express 앱을 생성해주자.//package.json 생성npm init -y 그리고 추가적으로 설치할 모듈은 dotenv, jsonwebtoken, nodemon, express이다.각각의 모듈을 설명해보자면 2-1-1. dotenv 모듈dotenv 모듈은 환경 변수(environment variables)를 .env 파일에서 불러와 애플리케이션에서 사용할 수 있도록 해주는 Node.js 라이브러리이다.환경 변수는 주로 애플리케이션의 설정이나 비밀 키와 같은 민감한 정보를 코드 외부에서 관리할 때 사용된다.그리고 우리 프로젝트에서도 이런 노출되지 않기 위한 설정 혹은 키에 대해..
2025.01.12 -
로그인, 인증 기능 구축 프로젝트[미니 프로젝트 1] - 01. jwt를 이용한 인증 앱 생성하기 : 01. 인증 서비스 구현을 위해서 필요한 지식 및 JWT에 대해서
01. 인증 서비스 구현을 위해서 필요한 지식https에선 요청에 많은것을 담지 않기 위해서 stateless라는 성격을 띄고 있다.그렇기에 각각의 요청은 각각의 요청에서만 구별하지 요청들끼리에 공통적인 특정을 요청만으로는 알수 없다.간단하게 이야기하자면 A라는 사람이 B라는 서버에게 1번 요청을 보내고 B 서버에서 그에 대한 1번 응답을 보낸다 하더라고 2번 요청때 B 서버는 이 요청이 A가 보냈다고 하더라도 A가 보낸 요청임을 알수가 없다는 것이다.이게 stateless이다. 이를 해결하기 위해서 토큰을 사용하는데 이 과정은 A클라이언트가 B 서버에 요청을 보내면 B서버는 A 클라이언트에게 응답과 함께 토큰을 생성해서 전달한다.그러면 A 클라이언트는 B 서버에게 다음 요청에 대해서 토큰을 같이 보내고..
2025.01.12