public async Task <IActionResult> Login([FromBody] LoginUserDTO userInfo) { var user = await _userManager.FindByEmailAsync(userInfo.Email); if (user != null) { var result = await _signInManager.PasswordSignInAsync(user.Email, userInfo.Password, isPersistent : false, lockoutOnFailure : false); if (result.Succeeded) { var userDto = _mapper.Map <UsuarioDTO>(user); UsuarioTokenDTO aux = GeraToken(userDto); await UsuarioRepository.UpdateToken(user, aux.Token); return(Ok(aux)); } else { MensagemDTO message = new MensagemDTO("Senha inválida!"); return(Unauthorized(message)); } } else { MensagemDTO message = new MensagemDTO("Usuário e/ou senha inválidos"); return(Unauthorized(message)); } }
public async Task <IActionResult> Register([FromBody] RegisterUserDTO userInfo) { if (await UsuarioRepository.GetByEmailAsync(userInfo.Email) != null) { MensagemDTO mensagem = new MensagemDTO("Já existe um usuário com esse email cadastrado!"); return(Conflict(mensagem)); } var user = new Usuario { UserName = userInfo.Email, Name = userInfo.Name, Email = userInfo.Email, EmailConfirmed = true, DDD = userInfo.Phone.DDD, PhoneNumber = userInfo.Phone.Number, PhoneNumberConfirmed = true }; var result = await _userManager.CreateAsync(user, userInfo.Password); if (!result.Succeeded) { MensagemDTO message = new MensagemDTO("Não foi possível registrar esse usuário!"); return(BadRequest(message)); } await _signInManager.SignInAsync(user, false); var userDto = _mapper.Map <UsuarioDTO>(user); UsuarioTokenDTO aux = GeraToken(userDto); await UsuarioRepository.UpdateToken(user, aux.Token); return(Ok(aux)); }