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 중국어 웹사이트의 기타 관련 기사를 참조하세요!