작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
40
0
{
"sub" : "1234567890",
"iss" : "onjsdnjs.com" // 등록된 클레임
"exp" : 192630000
"https://onjsdnjs.com/claims/job" : "developer" //공개 클레임
"userId" : "leaven" // 비공개 클레임
"username" : "onjsdnjs"
}
공개와 비공개 개념이 있습니다.
어디에 혹은 어느 대상에 공개를 한다는 것인지 설명이 없어 문의 드립니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. coffee93.coder님.
JWT(JSON Web Token)에서 클레임(Claims)은 토큰 내에 사용자의 정보나 기타 메타데이터를 담고 있는 부분입니다. 클레임은 크게 등록된 클레임(Registered Claims), 공개 클레임(Public Claims), 비공개 클레임(Private Claims)으로 나눌 수 있습니다.
등록된 클레임: iss
, sub
, exp
와 같이 JWT 사양에 등록되어 있는 클레임입니다. 이는 특정한 사양에 따라 의미가 정해져 있어, 광범위하게 사용됩니다.
공개 클레임: 자체 도메인으로 네임스페이스를 지정하여 사용자가 정의하는 클레임입니다. 예를 들어 https://onjsdnjs.com/claims/job
과 같은 형식입니다. 클레임 네임이 충돌하지 않도록 도메인 형식으로 네임스페이스를 지정하여 사용하는 것이 일반적입니다.
비공개 클레임: userId
, username
과 같이 클라이언트와 서버 간의 계약을 통해 사용되는 클레임입니다. 비공개 클레임은 공개적이지 않으며, 특정 클라이언트와 서버 간에만 이해되는 데이터입니다.
공개와 비공개의 개념은 클레임의 네임스페이스와 사용 목적에 따라 클레임이 다른 시스템에서 인식될 수 있는지 여부에 따라 구분됩니다. 공개 클레임은 명확한 네임스페이스를 통해 같은 키가 중첩되지 않게 하며, 여러 시스템에서 사용할 수 있습니다. 비공개 클레임은 이러한 규칙 없이, 서버와 클라이언트 간의 특정 요구사항에 맞추어 자유롭게 정의하고 사용할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.