2017-09-08 2 views
3

많은 어려움을 겪은 후 (많은 tuturials, 가이드 등) 난 작은 .NET Core REST Web API를 저장된 사용자 이름과 암호가 유효하면 Auth Controller가 JWT 토큰을 발행합니다..NET Core Web API에서 현재 사용자를 얻는 방법 (JWT Token에서)

토큰은 사용자 ID를 하위 클레임으로 저장합니다.

또한 메소드에서 Authorize 주석을 사용할 때 해당 토큰의 유효성을 검사하도록 웹 API를 설정하기도했습니다.

 app.UseJwtBearerAuthentication(...)

지금 내 질문 : 어떻게 (웹 API에서) 내 컨트롤러에서 (주제 청구에 저장) 사용자 ID를 읽습니까?

기본적으로이 질문 (How do I get current user in ASP .NET Core)이지만 웹 API에 대한 대답이 필요합니다. 그리고 저는 UserManager가 없습니다. 그래서 나는 어딘가에서 주제에 대한 주장을 읽을 필요가있다.

당신은이 방법을 사용할 수 있습니다
+0

그것은 "웹 API"에 대한 동일해야 내 경우

var email = User.FindFirst("sub")?.Value; 

나는 고유 한 값으로 이메일을 사용하고 있습니다를 Mvc와 Web API는 병합되어 동일한 컨트롤러를 사용합니다. –

답변

2

: ASP.NET 코어에서 ..

+0

감사합니다. 수락 된 답변으로 표시되어야합니다! 사용자 이름 : User.Identity.Name. 사용자는 Microsoft.AspNetCore.Mvc.ControlerBase의 속성이며 형식은 System.Security.Claims.ClaimsPrincipal입니다. 그냥 추가. – heringer

관련 문제