MVC com identidade Owin JWT
Estou tentando descobrir como obter a reivindicação do meu token. Vou tentar manter a explicação curta
Eu tenho uma página HTML que faz uma postagem na minha API da Web, faz e verifica a autenticação e retorna um token JWTQuando recebo o token de volta, quero enviá-lo para um URL diferente e a maneira como o faço é usando uma querystring. Eu sei que posso usar cookies, mas para este aplicativo não queremos usá-los. Então, se meu URL estiver assimhttp://somedomain/checkout/?token=bearer token comes here
estou usandoOwin
middleware
e é isso que eu tenho até agora
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);
}
}
Mas como obtenho oClaims
Fora deToken
ou apenas verifique oIsAuthenticated
Eu tentei o seguinte dentro do meucontroller
apenas para verificar, mas oIsAuthenticated
é semprefalse
var identity = (ClaimsIdentity) HttpContext.Current.GetOwinContext().Authentication.User.Identity;
if (!identity.IsAuthenticated)
return;
var id = identity.FindFirst(ClaimTypes.NameIdentifier);