브라우저에서 JWT를 읽고 서명을 확인하거나, 시험용 토큰에 서명합니다. HMAC, RSA, ECDSA를 다룹니다. 토큰은 올리지 않습니다. JWKS로 검증을 누를 때만 브라우저가 공개 키를 가져옵니다.
JWKS로 검증은 이 브라우저가 그 주소에서 키만 가져옵니다. 토큰은 이 페이지에 남습니다. 그 주소가 브라우저 요청을 허용해야 합니다.
HS는 비밀을 씁니다. RS, PS, ES는 키 칸을 씁니다. 검증은 토큰을 봅니다. JWT 만들기는 헤더와 페이로드를 읽습니다.
JWT는 Base64url 세 조각입니다. 헤더, 페이로드, 서명. 헤더와 페이로드는 JSON이고 암호화되지 않습니다. 토큰을 가진 사람은 읽을 수 있습니다. 서명은 HMAC 비밀이나 공개 키가 있을 때 페이로드가 바뀌지 않았음을 보여 줍니다. 이 페이지는 브라우저에서 읽고, 검증하고, 만듭니다. alg가 none인 경우, 없거나 이미 지난 exp, 밀리초로 쓴 시각, 32바이트보다 짧은 HMAC 비밀을 알려 줍니다. 토큰은 올리지 않습니다. 해시 페이지의 체크섬은 JWT 서명이 아닙니다. exp는 초 단위 Unix 시간입니다. 다른 시간대는 유닉스 시간 페이지에서 봅니다.
exp가 지금이거나 더 이르면 만료입니다.{"sub":"user-1"}인 HS256 토큰을 넣고 HMAC 비밀을 secret으로 둡니다. 비밀은 Base64는 꺼져 있습니다. 검증은 서명이 맞는다고 합니다. 보안 점검은 비밀이 6바이트이고 exp가 없다고 합니다. 짧은 것은 예시입니다.iat와 exp를 그대로 둡니다. 1시간을 고르고 만들면 지금부터의 초로 둘을 씁니다. 템플릿의 사용자는 sub 1234567890, name John Doe, email [email protected]을 넣습니다. 접근은 sub user-1과 scope read를 넣습니다.HS256, HS384, HS512는 비밀을 씁니다. 32바이트보다 짧아도 서명은 되며, 보안 점검이 경고합니다. 비밀 자체가 Base64일 때만 비밀은 Base64를 켭니다. RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512는 PEM이나 JWK입니다. 공개 키는 검증에 씁니다. PKCS#8 개인 키는 만들 때 씁니다. RSA 개인 키는 공개 부분을 포함하므로 검증에도 쓸 수 있습니다. SPKI(BEGIN PUBLIC KEY), PKCS#8(BEGIN PRIVATE KEY), PKCS#1 RSA를 붙일 수 있습니다. 인증서는 거절합니다. BEGIN EC PRIVATE KEY인 EC 키도 거절합니다. PKCS#8로 내보내세요. alg가 none이면 유효로 보지 않습니다. 검증은 헤더의 alg를 따릅니다. HMAC 비밀로 RSA를 확인하지 않습니다. exp, nbf, iat는 초입니다. 열세 자리는 경고만 하고 바꾸지 않습니다. JWKS는 키 묶음이거나 키 하나입니다. 여러 개인데 kid가 없으면 오류입니다. 헤더나 페이로드가 배열이면 JWT 만들기가 멈춥니다.
sub와 exp를 읽을 때.아닙니다. Base64url입니다. 비밀번호나 번호를 넣지 마세요.
토큰에는 점이 두 개, JSON이 두 조각 있어야 합니다. 헤더 alg는 이 페이지가 아는 것이어야 합니다. HS는 서명할 때와 같은 비밀이어야 하고, 비밀은 Base64 체크도 저장 방식과 맞아야 합니다. RSA와 EC는 인증서가 아니라 공개 키입니다. 지난 exp는 보안 점검의 경고이고, 서명 불일치가 아닙니다.
HS256은 공유 비밀 하나입니다. RS256은 개인 키로 서명하고 공개 키로 확인합니다. HMAC 비밀을 다른 서비스에 주지 마세요. 공개 키를 주세요.
헤더가 서명이 없다고 말합니다. 이 페이지는 그 토큰을 유효하다고 하지 않습니다.
없습니다. 발급하는 쪽에서 exp를 짧게 하거나, 폐기 목록을 두세요.
검증은 브라우저 안에서 합니다. JWKS로 검증만 요청이며, 키를 받고 토큰은 보내지 않습니다. 그래도 살아 있는 운영 토큰을 공용 컴퓨터에 붙이지 마세요. 시간이 몇 시간 달라 보이면 숫자는 UTC이고, 페이로드 아래 줄은 이 컴퓨터의 시계입니다.