0

Azure AD 로그인에서 액세스 토큰을 얻고 있습니다. 하지만 Access Token에서 데이터를 추출하는 데 JWT dll을 사용하고 싶지 않습니다. 그래서이 대안 솔루션이 필요합니다. 이는 JWT에서 내 샘플 코드JWT가없는 액세스 토큰에서 사용자 데이터를 얻는 방법

var handler = new JwtSecurityTokenHandler(); 
      JwtSecurityToken tokenS = handler.ReadToken(data.AccessToken) as JwtSecurityToken; 
      var claims = tokenS.Claims; 
      var username = claims.FirstOrDefault(s => s.Type == "email").Value; 

사용되는 DLL을 : System.IdentityModel.Tokens.Jwt를 사용하여; 데이터 추출을 위해이 DLL을 원하지 않습니다. 나는 dll을 사용하지 않고 또 다른 해결책이 필요하다.

답변

1

내가 의도 한 목적에 맞게 라이브러리를 사용하고 싶지 않은 이유는 묻지 않습니다. 어쨌든 JWT는 64 개로 인코딩 된 문자열로 연결된 불과 3 기지, (가정하는 서명되지만 암호화되지는)

그래서 '.':

var split = jwt.Split('.') 
var token = Convert.FromBase64String(split([1])) 

중간 비트가 JSON에서 토큰, 사용 newtonsoft 읽기 그것

+0

당신의 대답에 감사드립니다. 그것은 나를 위해 일합니다. –

+0

다음 대답을 수락하십시오 – pm100

+0

그냥 기본 64 인코딩 된 문자열을 디코딩하는 문제는 서명을 확인하지 않는다는 것입니다. 따라서 JWT 토큰이 예상하는 출처에서 비롯되었다는 보장이 없습니다. – RasmusW

관련 문제