public IActionResult Post([FromBody] VisaoModeloUsuario usuario, [FromServices] SegurancaJWT signingConfigurations, [FromServices] ConfiguracaoToken tokenConfigurations) { try { _autorizarUsuarioVisaoModelo.ValidarUsuarioAutorizado(usuario.Login, usuario.Senha); return(Ok(GetToken(usuario, signingConfigurations, tokenConfigurations))); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
protected object GetToken([FromBody] VisaoModeloUsuario usuario, [FromServices] SegurancaJWT signingConfigurations, [FromServices] ConfiguracaoToken tokenConfigurations) { try { 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.FromMinutes(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 }); } catch (Exception ex) { throw ex; } }
public async Task <IActionResult> AdicionarUsuario( [FromBody] VisaoModeloUsuario novoUsuario) { if (novoUsuario is null || !ModelState.IsValid) { return(BadRequest(ModelState)); } var retorno = new ModeloVisaoRetorno <ModeloVisaoUsuario>(); var usuario = _mapper.Map <Usuario>(novoUsuario); var usuarioDominio = await _servicoAplicacaoUsuario.AdicionarUsuarioAssincrono(usuario); retorno.ObjetoDeRetorno = _mapper.Map <ModeloVisaoUsuario>(usuarioDominio); return(CreatedAtAction(nameof(ObterUsuario), new { usuarioId = usuarioDominio.UsuarioId }, retorno)); }