def validate_url_signature(url, secret, opts = {})
      opts = default_opts.merge(opts)
      opts[:query_based] = true

      uri = parse_url(url)
      query_values = Rack::Utils.parse_nested_query(uri.query)
      return false unless query_values

      auth_params = query_values.delete(opts[:auth_param])
      return false unless auth_params

      date = auth_params["date"]
      nonce = auth_params["nonce"]
      validate_signature(auth_params["signature"], :secret => secret, :method => "GET", :path => uri.path, :date => date, :nonce => nonce, :query => query_values, :headers => {})
    end
def validate_url_signature(url, secret, opts = {})
      opts = default_opts.merge(opts)
      opts[:query_based] = true

      uri = parse_url(url)
      query_values = Rack::Utils.parse_nested_query(uri.query)
      return false unless query_values

      auth_params = query_values.delete(opts[:auth_param])
      return false unless auth_params

      date = auth_params["date"]
      nonce = auth_params["nonce"]
      validate_signature(auth_params["signature"], :secret => secret, :method => "GET", :path => uri.path, :date => date, :nonce => nonce, :query => query_values, :headers => {})
    end
convienience method to check the signature of a url with query-based authentication

 @param [String] url the url to test
 @param [String] secret the secret used to sign the url
 @param [Hash] opts Options controlling the singature generation

 @option opts [String]             :auth_param ('auth')   The name of the authentication param to use for query based authentication

 @return [Bool] true if the signature is valid