diff options
Diffstat (limited to 'apps/files_versions/src/utils/davClient.js')
-rw-r--r-- | apps/files_versions/src/utils/davClient.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/apps/files_versions/src/utils/davClient.js b/apps/files_versions/src/utils/davClient.js new file mode 100644 index 00000000000..029373e9193 --- /dev/null +++ b/apps/files_versions/src/utils/davClient.js @@ -0,0 +1,29 @@ +/** + * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import { createClient } from 'webdav' +import { generateRemoteUrl } from '@nextcloud/router' +import { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth' + +// init webdav client +const rootPath = 'dav' +const remote = generateRemoteUrl(rootPath) +const client = createClient(remote) + +// set CSRF token header +const setHeaders = (token) => { + client.setHeaders({ + // Add this so the server knows it is an request from the browser + 'X-Requested-With': 'XMLHttpRequest', + // Inject user auth + requesttoken: token ?? '', + }) +} + +// refresh headers when request token changes +onRequestTokenUpdate(setHeaders) +setHeaders(getRequestToken()) + +export default client |