public async Task <UserEntity> GetByCredentialsAsync(AuthReadRequest authReadRequest) { var user = await _context.Db.Set <UserEntity>() .FindAsync(authReadRequest.Username); return(Crypt.PasswordVerify(authReadRequest.Password, user.Password) ? user : throw new NotFoundException("Invalid username or password")); }
private async Task <UserResponse> GetUser(AuthReadRequest authReadRequest) { UserEntity user = await _userRepository.GetByCredentialsAsync(authReadRequest); return(_mapper.Map <UserResponse>(user)); //return new UserResponse //{ // UserID = "batman999999", // Name = "batman", // Email = "*****@*****.**", // Username = "******", // Role = "Admin" //}; }
public async Task <ActionResult <AuthResponse> > Login([FromBody] AuthReadRequest authReadRequest) { try { return(Ok(await _authService.AuthAndGenerateToken(authReadRequest))); } catch (NotFoundException ex) { return(NotFound(new { message = ex.Message })); } catch (Exception e) { _logger.LogError(e, "Error on Auth - GenerateToken"); return(BadRequest(e.Message)); } }
public async Task <AuthResponse> AuthAndGenerateToken(AuthReadRequest authReadRequest) { UserResponse userResponse = await GetUser(authReadRequest); string secret = _configuration["Authentication:Secret"]; UserResponseUtil userToUserUtil = _mapper.Map <UserResponseUtil>(userResponse); string tokenBuilded = TokenBuilder.BuildToken(userToUserUtil, secret); return(new AuthResponse { User = userResponse, Token = new TokenResponse { Token = tokenBuilded } }); }