public ActionResult Login([FromBody] UsuarioDTO usuarioDTO)
        {
            ModelState.Remove("ConfimacaoSenha");
            ModelState.Remove("Nome");

            if (ModelState.IsValid)
            {
                ApplicationUSER usuario = _usuarioRepository.obter(usuarioDTO.Email, usuarioDTO.Senha);

                if (usuario != null)
                {
                    //Login no identity
                    //_signInManager.SignInAsync(usuario,false);

                    //retornar token (JWT)
                    return(GerarToken(usuario));
                }
                else
                {
                    return(NotFound("Usuário não localizado"));
                }
            }
            else
            {
                return(UnprocessableEntity(ModelState));
            }
        }
        public ActionResult Cadastrar([FromBody] UsuarioDTO usuarioDTO)
        {
            if (ModelState.IsValid)
            {
                ApplicationUSER usuario = new ApplicationUSER();
                usuario.UserName = usuarioDTO.Email;
                usuario.FullName = usuarioDTO.Nome;
                usuario.Email    = usuarioDTO.Email;

                var resultado = _userManager.CreateAsync(usuario, usuarioDTO.Senha).Result;

                if (!resultado.Succeeded)
                {
                    List <string> erros = new List <string>();
                    foreach (var erro in resultado.Errors)
                    {
                        erros.Add(erro.Description);
                    }

                    return(UnprocessableEntity(erros));
                }
                else
                {
                    return(Ok(usuario));
                }
            }
            else
            {
                return(UnprocessableEntity(ModelState));
            }
        }
Exemplo n.º 3
0
        public List <Tarefa> Restauracao(ApplicationUSER usuario, DateTime?DataUltimaSicronizacao)
        {
            var query = _banco.Tarefas.Where(u => u.UsuarioID == usuario.Id).AsQueryable();

            if (DataUltimaSicronizacao != null)
            {
                query.Where(condicao => condicao.Criado >= DataUltimaSicronizacao || condicao.Atualizado >= DataUltimaSicronizacao).AsQueryable();
            }

            return(query.ToList <Tarefa>());
        }
        private ActionResult GerarToken(ApplicationUSER usuario)
        {
            var token = BuildToken(usuario);

            var TokenModel = new Token()
            {
                RefreshToken           = token.RefreshToken,
                Expiration             = token.Expiration,
                ExpirationRefreshToken = token.ExpirationRefreshToken,
                Usuario    = usuario,
                Criado     = DateTime.Now,
                Ultilizado = false
            };

            _tokenRepository.Cadastrar(TokenModel);

            return(Ok(token));
        }
Exemplo n.º 5
0
        public void Cadastrar(ApplicationUSER usuario, string senha)
        {
            var result = _userManager.CreateAsync(usuario, senha).Result;

            if (result.Succeeded)
            {
                StringBuilder sb = new StringBuilder();
                foreach (var erro in result.Errors)
                {
                    sb.Append(erro.Description);
                }

                throw new Exception($"Usuario não cadastrado! {sb.ToString()}");
            }
            else
            {
            }
        }
        private TokenDTO BuildToken(ApplicationUSER usuario)
        {
            var claims = new[]
            {
                new Claim(JwtRegisteredClaimNames.Email, usuario.Email),
                new Claim(JwtRegisteredClaimNames.Sub, usuario.Id)
            };

            var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("minha-api-aprendizado@"));
            var singn = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            var exp   = DateTime.UtcNow.AddHours(1);

            JwtSecurityToken token = new JwtSecurityToken(

                issuer: null,
                audience: null,
                claims: claims,
                expires: exp,
                signingCredentials: singn
                );

            //String Token
            var tokenString = new JwtSecurityTokenHandler().WriteToken(token);

            //Data de Expiração do Refresh Token
            var expRefreshToken = DateTime.UtcNow.AddHours(2);

            //Refresh Token
            var refreshtoken = Guid.NewGuid().ToString();

            var TokenDTO = new TokenDTO {
                Token = tokenString, Expiration = exp, RefreshToken = refreshtoken, ExpirationRefreshToken = expRefreshToken
            };

            return(TokenDTO);
        }