JWT(6)
-
토큰에 대한 고민
인증 및 인가를 할 때 선택지는 쿠키, 세션, 토큰 정도가 있다. 주로 토큰방식을 사용하며 JWT 를 사용한다. 왜 토큰을 사용할까? 토큰이 정말 안전할까? 등 나의 생각을 정리해보려고 한다. JWT 는 어떻게 구성이 되어 있을까? 점(.)을 기준으로 헤더.페이로드.시그니쳐 로 구분된다. 헤더에는 토큰의 유형 + 해싱 알고리즘이 들어있다. 페이로드는 토큰에서 사용할 정보(클레임)이 들어있다. 이 클레임은 json 객체이다. 클레임은 토큰 정보를 표현하기 위해 정해진 종류의 데이터이다. 물론 사용자가 정의해 비공개 클레임을 만들 수도 있다. 시그니쳐는 토큰을 검증하기 위한 것들이 들어간다. 헤더와 페이로드를 base64로 인코딩한 후 비밀키를 이용해 헤더에서 정의한 알고리즘으로 해싱해 다시 base64 로..
2024.04.22 -
JWT Token & Session
Session 이란? 유저의 정보를 데이터베이스에 저장하고 상태를 유지하는도구 특징 session은 특수한 id 값으로 구성되어 있고, session 은 서버에서 생성되고 클라이언트에서 쿠키를 통해 저장이 된다. 클라이언트에서 요청을 보낼 때 session id 를 같이 보내면 현재 요청을 보내는 사용자가 누구인지 서버에서 알 수가 있다. 즉 session id 의 정보가 서버에 특정 데이터베이스의 정보와 연결되어 있다는 것이다. 때문에 요청을 할 때마다 매번 아이디와 비밀번호를 물어 볼 필요가 없는 장점을 가지고 있다. (이부분은 JWT 도 마찬가지) 서버에서 데이터가 저장되기 때문에 클라이언트에 사용자 정보가 노출될 위험이 없다. 데이터베이스에 session 을 저장해야 하기 때문에 Horizonta..
2023.12.19 -
10 주차 [ WIL ]
이번주에 알게된 것 1. Isolation level https://muyeon95.tistory.com/264 Isolation level 필요성 격리 수준은 트랜잭션의 ACID 특성을 보장하기 위해서 사용한다. Locking 을 통해 이를 해결할 수 있지만, 무조건적인 Locking 은 성능저하를 가져온다. 반대로 느슨한 Locking 은 데이터 무결성 muyeon95.tistory.com 2. OSI 7 Layer https://muyeon95.tistory.com/265 OSI 7 Layer OSI 7 계층이란? OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. OSI 7 계층으로 나눈 이유는? 계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 m..
2023.08.21 -
JWT
JWT 란? 인증에 필요한 정보들을 암호화 시킨 JSON 토큰을 의미한다. 그리고 JWT 기반 인증은 JWT 토큰(Access Token)을 HTTP 헤더에 실어 서버가 클라이언트를 식별하는 방식이다. JWT 는 JSON 데이터를 Base64 URL-safe Encode 를 통해 인코딩하여 직렬화한 것이며, 토큰 내부에는 위변조 방지를 위해 개인키를 통한 전자서명도 들어있다. 따라서 사용자가 JWT 를 서버로 전송하면 서버는 서명을 검증하는 과정을 거치게 되며 검증이 완료되면 요청한 응답을 돌려준다. JWT 구조 JWT 는 . 을 기준으로 나누어지는 세가지 문자열의 조합이다. Header.Payload.Signature 를 의미한다. Header 에는 JWT 에서 사용할 타입과 해시 알고리즘의 종류가 담..
2023.08.21 -
5 주차 [ WIL ]
이번주에 알게된 것 1. 알고리즘 프로그래머스 카펫 https://muyeon95.tistory.com/207 프로그래머스 카펫 [ Python ] 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 muyeon95.tistory.com 2. Sequelize https://muyeon95.tistory.com/category/SQL/Sequelize 'SQL/Sequelize' 카테고리의 글 목록 성장에 목마른 초보개발자입니다. 공부한 내용을 끄적끄적한 블로그입니다. :) muyeon95.tistory.com 3. 테스트 코드 TIL : https://muyeo..
2023.07.16 -
JWT 토큰 [ node.js ] [ express ]
JWT 토큰이란? Json 포멧을 이용해 사용자에 대한 속성을 저장하는 웹 토큰이다. JWT 는 토큰 자체를 정보로 사용한다. 주로 회원 인증이나 정보 전달에 사용된다. JWT 구조 JWT 는 Header, Payload, Signature 의 세가지 부분으로 이루어 지고, Json 형태인 각 부분은 Base64Url 로 인코딩 되어 표현된다. 또 각 부분을 이어주기 위해서 . 구분자를 사용하여 구분한다. * Base64Url 은 암호화된 문자열이 아니고 같은 문자열에 대해 항상 같은 인코딩 문자열을 반환한다. 1. Header(헤더) 토큰의 헤더는 typ 과 alg 두 가지 정보로 구성된다. { "alg": "HS256", "typ": JWT } typ : 토큰의 타입을 지정 ex) JWT alg : ..
2023.07.16