public object Post( [FromBody] Usuario usuario, [FromServices] Signing signingConfigurations, [FromServices] Token tokenConfigurations) { bool credenciaisValidas = false; if (usuario != null && usuario.ID != 0) { var usuarioBase = _usuarioRepository.Find(usuario.ID); credenciaisValidas = (usuarioBase != null && usuario.Login == usuarioBase.Login && usuario.Password == usuarioBase.Password); } if (credenciaisValidas) { ClaimsIdentity identity = new ClaimsIdentity( new GenericIdentity(usuario.Login, "Login"), new[] { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")), new Claim(JwtRegisteredClaimNames.UniqueName, usuario.Login) } ); DateTime dataCriacao = DateTime.Now; DateTime dataExpiracao = dataCriacao + TimeSpan.FromSeconds(tokenConfigurations.Seconds); var handler = new JwtSecurityTokenHandler(); var securityToken = handler.CreateToken(new SecurityTokenDescriptor { Issuer = tokenConfigurations.Issuer, Audience = tokenConfigurations.Audience, SigningCredentials = signingConfigurations.SigningCredentials, Subject = identity, NotBefore = dataCriacao, Expires = dataExpiracao }); var token = handler.WriteToken(securityToken); return(new { authenticated = true, created = dataCriacao.ToString("yyyy-MM-dd HH:mm:ss"), expiration = dataExpiracao.ToString("yyyy-MM-dd HH:mm:ss"), accessToken = token, message = "OK" }); } else { return(new { authenticated = false, message = "Erro ao autenticar" }); } }
public ActionResult <string> Get(int id) { return(Ok(_usuarioRepository.Find(id))); }