public async Task <_ServiceResponse <string> > Login(CAD_usuarioInserirDTO cAD_usuarioDTO) { _ServiceResponse <string> _serviceResponse = new _ServiceResponse <string>(); try { CAD_pessoa cAD_pessoa = _dataContext.CAD_Pessoa.FirstOrDefault(x => x.Email == cAD_usuarioDTO.Email); CAD_Usuario cAD_Usuario = await _dataContext.CAD_usuario.FirstOrDefaultAsync(x => x.CAD_pessoa.Id == cAD_pessoa.Id); if (cAD_Usuario.Equals(null)) { _serviceResponse.Success = false; _serviceResponse.Message = UsuarioMensagem.UsuarioNaoEncontrado(); return(_serviceResponse); } else if (!VerificarPasswordHash(cAD_usuarioDTO.Senha, cAD_Usuario.SenhaHash, cAD_Usuario.SenhaSalt)) { _serviceResponse.Success = false; _serviceResponse.Message = UsuarioMensagem.SenhaInvalida(); return(_serviceResponse); } _serviceResponse.Data = CreateToken(cAD_Usuario); } catch (Exception ex) { _serviceResponse.Success = false; _serviceResponse.Message = ex.Message; } return(_serviceResponse); }
private string CreateToken(CAD_Usuario cAD_Usuario) { List <Claim> claim = new List <Claim>() { new Claim(ClaimTypes.NameIdentifier, cAD_Usuario.Id.ToString()), }; SymmetricSecurityKey systemSecurityKey = new SymmetricSecurityKey( Encoding.UTF8.GetBytes(_iConfiguration.GetSection("AppSettings").GetSection("Token").Value) ); SigningCredentials signingCredentials = new SigningCredentials(systemSecurityKey, SecurityAlgorithms.HmacSha512Signature); SecurityTokenDescriptor securityTokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claim), Expires = DateTime.Now.AddDays(1), SigningCredentials = signingCredentials }; JwtSecurityTokenHandler jwtSecurityTokenHandler = new JwtSecurityTokenHandler(); SecurityToken securityToken = jwtSecurityTokenHandler.CreateToken(securityTokenDescriptor); return(jwtSecurityTokenHandler.WriteToken(securityToken)); }
public async Task <_ServiceResponse <CAD_usuarioInserirDTO> > Registrar(CAD_usuarioInserirDTO cAD_usuarioDTO) { CAD_Usuario cAD_usuario = new CAD_Usuario(); _ServiceResponse <CAD_usuarioInserirDTO> _serviceResponse = new _ServiceResponse <CAD_usuarioInserirDTO>(); try { if (await Existe(cAD_usuarioDTO)) { _serviceResponse.Success = false; _serviceResponse.Message = UsuarioMensagem.UsuarioJaCadastrado(); return(_serviceResponse); } SenhaHashUtil.CriarSenhaHash(cAD_usuarioDTO.Senha, out byte[] senhaHash, out byte[] senhaSalt); cAD_usuario.SenhaHash = senhaHash; cAD_usuario.SenhaSalt = senhaSalt; cAD_usuario.CAD_pessoa = new CAD_pessoa { Nome = cAD_usuarioDTO.Nome, Email = cAD_usuarioDTO.Email }; await _dataContext.CAD_usuario.AddAsync(cAD_usuario); await _dataContext.SaveChangesAsync(); _serviceResponse.Data = cAD_usuarioDTO; _serviceResponse.Message = UsuarioMensagem.SucessoCadastro(); return(_serviceResponse); } catch (Exception ex) { _serviceResponse.Success = false; _serviceResponse.Message = ex.Message; return(_serviceResponse); } }