# File lib/openid/consumer.rb, line 498
    def check_auth(nonce, consumer_id, post_data, server_url)
      ret = @fetcher.post(server_url, post_data)
      if ret.nil?
        return [FAILURE, consumer_id]
      else
        url, body = ret
      end
    
      results = OpenID::Util.parsekv(body)
      is_valid = results.fetch("is_valid", "false")
    
      if is_valid == "true"
        invalidate_handle = results["invalidate_handle"]
        unless invalidate_handle.nil?
          @store.remove_association(server_url, invalidate_handle)
        end
        unless @store.use_nonce(nonce)
          return [FAILURE, consumer_id]
        end
        return [SUCCESS, consumer_id]
      end
    
      error = results["error"]
      return [FAILURE, consumer_id] unless error.nil?
      return [FAILURE, consumer_id]
    end