public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); var usuario = _usuarioApp.Autenticar(context.UserName, context.Password); if (usuario == null) { context.SetError("invalid_grant", "Usuário ou senha inválidos"); return; } if (!usuario.EstaAtivo) { context.SetError("invalid_grant", "Usuário está inativo."); return; } var identity = new ClaimsIdentity("JWT"); identity.AddClaims(ExtendedClaimsProvider.GetClaims(usuario)); identity.AddClaims(RolesFromClaims.CreateRolesBasedOnClaims(identity)); AuthenticationProperties properties = CreateProperties(usuario.IdPessoa.ToString(), usuario.Funcionario.Imagem, usuario.Funcionario.Estabelecimento.Logo); AuthenticationTicket ticket = new AuthenticationTicket(identity, properties); context.Validated(ticket); }