> 백엔드 개발 > C++ > JwtSecurityTokenHandler를 사용하여 JWT 토큰을 디코딩하고 '문자열은 컴팩트 JSON 형식이어야 합니다' 오류를 해결하는 방법은 무엇입니까?

JwtSecurityTokenHandler를 사용하여 JWT 토큰을 디코딩하고 '문자열은 컴팩트 JSON 형식이어야 합니다' 오류를 해결하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2025-01-06 21:46:40
원래의
515명이 탐색했습니다.

How to Decode JWT Tokens using JwtSecurityTokenHandler and Resolve

JwtSecurityTokenHandler를 사용하여 JWT 토큰 디코딩

JwtSecurityTokenHandler 클래스를 사용하면 JWT 토큰 디코딩이 간단한 작업이 될 수 있습니다. 그러나 "문자열은 압축 JSON 형식이어야 합니다." 오류와 같은 문제가 발생하는 경우 이를 해결하는 방법은 다음과 같습니다.

질문에서 언급했듯이 JwtSecurityTokenHandler에서는 문자열이 특정 형식이어야 합니다. Base64UrlEncodedHeader.Base64UrlEndcodedPayload.OPTIONAL,Base64UrlEncodedSignature.

이 문제를 해결하려면 ReadToken 결과를 캐스팅하거나 대신 ReadJwtToken 메서드를 사용하는 것이 해결 방법입니다. 작동 방식은 다음과 같습니다.

캐스트 메서드 사용:

var stream = "[encoded jwt]";
var handler = new JwtSecurityTokenHandler();
var jsonToken = handler.ReadToken(stream);
var tokenS = jsonToken as JwtSecurityToken;
로그인 후 복사

tokenS 변수는 이제 JwtSecurityToken 유형이므로 tokenS.Claims를 사용하여 클레임에 액세스할 수 있습니다.

ReadJwtToken 사용 방법:

var token = "[encoded jwt]";
var handler = new JwtSecurityTokenHandler();
var jwtSecurityToken = handler.ReadJwtToken(token);
로그인 후 복사

또는 ReadJwtToken 메서드를 사용하여 토큰을 직접 읽을 수도 있습니다. 이 메소드는 JwtSecurityToken 객체도 반환합니다.

토큰이 올바르게 디코딩되면 다음을 사용하여 클레임을 검색할 수 있습니다.

var jti = tokenS.Claims.First(claim => claim.Type == "jti").Value;
로그인 후 복사

이렇게 하면 토큰에서 jti 클레임 값이 검색됩니다.

JwtSecurityTokenHandler를 사용하여 JWT 토큰을 디코딩할 때 오류를 방지하려면 올바른 형식을 사용하는 것이 중요합니다. 소유권 주장에 대한 적절한 액세스를 보장합니다.

위 내용은 JwtSecurityTokenHandler를 사용하여 JWT 토큰을 디코딩하고 '문자열은 컴팩트 JSON 형식이어야 합니다' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿