따라서 이를 해결하기 위해 "인가"의 기술적인 방법이 필요!
좀 더 빠르게 가져오기 위해서는? Memory나 레디스(Cache)를 사용
JSON이란?
"키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷
{
"이름": "홍길동",
"나이": 25,
"성별": "여",
"주소": "서울특별시 양천구 목동",
"특기": ["농구", "도술"],
"가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"},
"회사": "경기 수원시 팔달구 우만동"
}```
Token이란?
통상, 최소 단위, 대용 화폐(상품권,교환권 등), 정보를 지닌 물리적,가상적 물체 등을 의미 함
- 보안 시스템에서의 토큰은, 크레딧 카드 크기의 작은 장치를 말하는데, ID 코드
JWT란?
- Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token
JWT 구성 요소 (먼저 Payload부터!)
- HEADER : 알고리즘 (RS256, HS256, RS512 등), 토큰 타입
- PAYLOAD : 사용자의 ID, 서비스상의 Level, 관리자 여부등의 사용자 정보(Claim)
- SIGNATURE (서명)
사이트 : https://jwt.io/
그럼 어떻게 진행되는데?! Flow Chart
서버는 HEADER + PAYLOAD + 서버에 숨겨져있는 비밀키 값을 알고리즘으로 돌려서 SIGNATURE과 같은지 확인! 맞으면 PASS 틀리면 REJECT
장점
- 이렇게 되면 서버는 비밀키만 관리하면 되기 때문에 메모리 관리가 용이
- 서버의 부하를 낮춤 (DB 접근을 계속할 필요가 없기 때문에)
단점
- 그러면 JWT가 제일 좋을까?! "NO"
따라서 이에 대한 일부 해결방법은 2개의 Token을 나눠주는 방법!
https://mangkyu.tistory.com/56 [MangKyu's Diary]