22.12.19.MON

Han Lee·2022년 12월 19일
0

TIL

목록 보기
17/43

지식 수준 맞추기

  • Node.js는 프로그래밍 언어가 아니라 실행 플랫폼
  • npm은 패키지 관리 프로그램이다.
  • express는 오픈소스 라이브러리
  • HTTP는 일반적으로 데이터를 주고 받을 때 사용되는 통신 규약
  • 웹 브라우저 : HTML로 이루어진 데이터를 읽어서 화면에 그려주는 역활
  • 쿠키 : 웹브라우저에 상태를 저장 -> req에 항상 쿠키 데이터를 가지고 있음
  • 세션 : 쿠키의 특성을 이용한 기술 -> 서버에 부하가 큼

JWT

  • json형태의 데이터를 안전하게 교환하여 사용할 수 있게 해주는 규격?
  • header.payload.signature -> 항상 2개의 . 이 포함된 데이터
  • signature에서 어떤 암호화를 사용하여 생성된 데이터인지 표현

payload

  • 개발자가 원하는 데이터 저장

signature

  • 토큰이 변조되지 않는 정상적인 토큰인지 확인하는

특성

  • 암호 키를 모르더라도 복호화가 가능하다.-> 누구든지 볼수 있다는 장,단점 존재
  • 민감한 정보는 담지 않도록 해야한다.

쿠키,세션과 JWT 차이점

  • JWT는 단순히 데이터를 표현하는 형식. 쿠키/세션 = 데이터를 교환하고 관리하는

사용법

  • 오픈소스 라이브러리를 이용
  • 암호화된 데이터는 쿠키,로컬스토리지에 저장 api요청을 할때 서버가 요구하는 양식에 맞게 보내주어 인증을 시도.
  • 회원가입, 로그인, 로그인 확인, 내정보 조회에 사용됨 => 특정 사용자 정보에 접근

Access Token, Refresh Token

Access Token

  • jwt데이터를 사용하여 특정사용자인걸 인식하는 -> 토큰에 인증을 해주는 -> 사용자 권한 확인.
  • Stateless -> 사용자 인증 여부는 확인가능 하지만 처음 발급한 사용자 본인인지 확인 불가.
  • 토큰 탈취시 위험함

Refresh Token

  • 인증 정보를 서버가 가지고 특정 저장소,db에 저장하여 관리
  • 특정 token 만료가 필요 할때 저장소에서 token삭제
  • Refresh Token을 거쳐서 Access Token을 발급 -> 피해를 최소화 하기 위해서
  • 짧은 시간 동안만 인증을 허락해주는.

Refresh Token api

Refresh Token은 최초로 발급 받고 짧은 만료시간을 가지는 Access Token을 발급 받음

  • Refresh Token, Access Token 발금 - get
  • token 인증받기 - get

미들웨어

  • 미들웨어란? req -> middleware-> app -> res : 모든 요청에 공통적 처리를 할 때 ex)로깅, 인증등 공통적으로 작동하는 작업을 공통적으로 관리

미들웨어 작성

app.use((req,ews,next) => {
	//필요한 코드
})

next : 미들웨어를 거치고 다음것을 실행 -> 다음 스택으로 정의된 미들웨어를 호출

profile
렌덤형 인간

0개의 댓글