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)); } }
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)); }
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); }