.NET Core로 JWT 토큰 디코딩
.NET Core에서 JWT 토큰 디코딩에는 JwtSecurityTokenHandler 사용이 포함됩니다. 그러나 압축 JSON 형식의 토큰을 디코딩할 때 일반적인 오류가 발생할 수 있습니다.
일반적인 문제: 잘못된 JSON 형식
일반적으로 발생하는 오류 중 하나는 "문자열을 다음 형식에 포함해야 합니다. 컴팩트 JSON 형식...". 이는 입력 토큰이 점으로 구분된 세 부분(헤더, 페이로드, 서명)으로 구성된 예상 JWT(JSON 웹 토큰) 형식이 아닐 때 발생합니다.
해결책:
이 문제를 해결하려면 입력 토큰이 압축 JSON 형식의 유효한 JWT인지 확인하세요. jwt.io와 같은 온라인 도구를 사용하여 토큰 형식을 확인할 수 있습니다.
결과 캐스팅을 잊어버렸습니다:
ReadToken의 결과가 다음과 같은 경우 발생할 수 있는 또 다른 오류입니다. 액세스를 위해 적절한 유형(예: JwtSecurityToken)으로 캐스팅되지 않았습니다. 클레임.
해결책:
JWT 토큰의 클레임에 액세스하려면 아래와 같이 ReadToken의 결과를 JwtSecurityToken으로 캐스팅해야 합니다.
var jsonToken = handler.ReadToken(stream); var tokenS = jsonToken as JwtSecurityToken; #region ... code to get claims ... #
또는 ReadJwtToken 오버로드 메서드를 사용하여 클레임을 직접 가져올 수도 있습니다. 캐스팅:
var token = handler.ReadJwtToken(stream); #region ... code to get claims ... #
클레임 액세스
JwtSecurityToken 또는 JwtSecurityToken 객체가 있으면 해당 Claims 속성을 사용하여 클레임에 액세스할 수 있습니다. 각 청구는 유형 및 값 속성이 있는 청구 개체로 표시됩니다.
var jti = tokenS.Claims.First(claim => claim.Type == "jti").Value; #region ... code to access other claims ... #
위 내용은 .NET Core에서 JWT 토큰을 디코딩하고 일반적인 오류를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!