docs: def validate_signature(uri, nonce, signature, auth_token=''):
      """
      Validates requests made by Plivo to your servers.
  
      :param uri: Your server URL
      :param nonce: X-Plivo-Signature-V2-Nonce
      :param signature: X-Plivo-Signature-V2 header
      :param auth_token: Plivo Auth token
      :return: True if the request matches signature, False otherwise
      """
  
      auth_token = bytes(auth_token.encode('utf-8'))
      nonce = bytes(nonce.encode('utf-8'))
      signature = bytes(signature.encode('utf-8'))
  
      parsed_uri = urlparse(uri.encode('utf-8'))
      base_url = urlunparse((parsed_uri.scheme.decode('utf-8'),
                             parsed_uri.netloc.decode('utf-8'),
                             parsed_uri.path.decode('utf-8'), '', '',
                             '')).encode('utf-8')
  
      return encodestring(hnew(auth_token, base_url + nonce, sha256)
                          .digest()).strip() == signature