MVC с идентификацией Owin JWT
Я пытаюсь выяснить, как получить иск из моего токена. Я постараюсь держать объяснение коротким
У меня есть HTML-страница, которая отправляет сообщение в мой веб-интерфейс, выполняет проверку подлинности и возвращает токен JWT.когда я получаю токен обратно, я хочу отправить его на другой URL, и способ, которым я делаю это, использует строку запроса. Я знаю, что могу использовать куки, но для этого приложения мы не хотим их использовать. Так что, если мой URL выглядит такhttp://somedomain/checkout/?token=bearer token comes here
я используюOwin
middleware
и это то, что я до сих пор
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
Provider = new ApplicationOAuthBearerAuthenticationProvider(),
});
public class ApplicationOAuthBearerAuthenticationProvider
: OAuthBearerAuthenticationProvider
{
public override Task RequestToken(OAuthRequestTokenContext context)
{
if (context == null)
throw new ArgumentNullException("context");
var token = HttpContext.Current.Request.QueryString["token"];
if (!string.IsNullOrEmpty(token))
context.Token = token;
return Task.FromResult<object>(null);
}
}
Но как я могу получитьClaims
внеToken
или просто проверьтеIsAuthenticated
Я попробовал следующее в моемcontroller
просто чтобы проверить, ноIsAuthenticated
всегдаfalse
var identity = (ClaimsIdentity) HttpContext.Current.GetOwinContext().Authentication.User.Identity;
if (!identity.IsAuthenticated)
return;
var id = identity.FindFirst(ClaimTypes.NameIdentifier);