public object Post([FromBody] UsuarioCommandRegister usuario, [FromServices] SigningConfigurations signingConfigurations, [FromServices] TokenConfigurations tokenConfigurations) { var usuarioBase = new UsuarioCommadResult(); bool credenciaisValidas = false; if (!string.IsNullOrEmpty(usuario.User) && !string.IsNullOrEmpty(usuario.Senha)) { usuarioBase = _service.GetUsuarioCommad(usuario.Senha, usuario.User); credenciaisValidas = (usuarioBase != null); } if (credenciaisValidas) { ClaimsIdentity identity = new ClaimsIdentity( new GenericIdentity(usuarioBase.UsuarioId.ToString()), new[] { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")), new Claim(JwtRegisteredClaimNames.Sub, usuarioBase.UsuarioId.ToString()) } ); 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 = "Falha ao autenticar" }); } }
public UsuarioCommandResultRegister Handler(UsuarioCommandRegister command) { var usuario = new Usuario( command.UsuarioId, command.Nome, command.Email, command.Senha, command.User, command.AccessKey ); var id = _usuarioRepository.SalvarUsuario(usuario); var result = new UsuarioCommandResultRegister( id, command.Nome ); return(result); }