저장을 습관화
230621 TIL 본문
- 회원가입 기능 추가할때 사용한 패키지
$ npm install jsonwebtoken
$ npm install cookie-parser
jsonwebtoken - JWT을 생성, 검증 및 관리하기 위한 패키지
JWT는 클라이언트와 서버 간에 안전하게 정보를 전송하기 위해 사용되는 인증 토큰이다.
JWT 패키지를 사용하면 사용자 인증 및 권한 부여와 같은 보안 기능을 구현할 수 있다.
토큰 생성, 검증, 해석의 기능을 한다.
JWT - JSON Web Token,
JSON 형태의 데이터를 안전하게 교환하여 사용할 수 있게 해주는 인터넷 표준 규격
비밀키를 모르더라도 복호화가 가능하기 때문에 민감한 정보를 담으면 안됨
쿠키나 세션과는 달리 데이터를 교환하고 관리하는 등의 역할은 하지 않음.
단순 데이터 표현 방식
cookie-parser - express 어플리케이션에서 쿠키를 구문 분석(파싱)하고 생성 및 관리하기 위한 미들웨어
- 원래는 회원가입할때 패스워드의 정보는 입력값 그대로 저장하면 보안에 취약하다
node.js의 경우 패스워드 정보의 암호화를 위해 crypto 등의 라이브러리를 사용한다
- 토큰 Bearer
res.cookie("Authorization", `Bearer ${token}`);
여기서 Bearer는 토큰의 여러가지 타입 중 하나이며 JWT와 OAuth을 사용할때 쓰인다.
OAuth: 현재 접근 시도 중인 서비스 외 제3의 플랫폼에서 접근 권한을 위임 받을 수 있는 표준 프로토콜
ex: 구글 계정으로 로그인, 깃허브 계정으로 로그인 등
3-4. "로그인 API 구현하기" 9:28에서 확인 가능
- req.cookies를 사용할때
const { Authorization } = req.cookies;
// 변수 Authorization은 "Bearer awerwersdf..."의 형태로 선언될 것이다.
// 이를 "Bearer"와 JWT 토큰 "awerwersdf"을 분리해주기 위해 split 메소드를 사용한다.
const [authType, authToken] = (Authorization ?? "").split(" ");
// ??는 'null 병합 연산자'로써 왼쪽에 있는 값이 비었거나 null일 경우 오른쪽의 값을 출력한다.
만약 변수 Authorization이 undefined로 선언이 되었을때(쿠키가 존재하지 않을때),
"" <- 빈 문자열로 줌으로써 split 메소드를 쓰더라도 에러가 나지 않게끔 조치한다.(방어적 코딩)
'공부 > TIL' 카테고리의 다른 글
230629 TIL (0) | 2023.06.29 |
---|---|
230628 TIL (0) | 2023.06.28 |
230621 TIL (0) | 2023.06.21 |
230618 TIL (0) | 2023.06.18 |
230612 TIL (0) | 2023.06.12 |