Exemple #1
0
        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;
            }
        }
Exemple #3
0
        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));
        }