public function auth($auth = true)
    {
        $headers = $this->headers();
        if ($auth === false) {
            unset($headers['Authorization']);
        }
        if (!$auth) {
            return;
        }
        if (is_array($auth) && !empty($auth['nonce'])) {
            $data = ['method' => $this->method(), 'uri' => $this->path()];
            $data += $auth;
        } else {
            $data = [];
        }
        $auth = $this->_classes['auth'];
        $data = $auth::encode($this->username(), $this->password(), $data);
        $headers['Authorization'] = $auth::header($data);
        return $this;
    }