Невозможно получить доступ к BigCommerce WebDAV с помощью node.js - PullRequest
0 голосов
/ 28 декабря 2018

Ситуация действительно работает, если я получаю доступ к BigCommerce WebDAV через Cyberduck.Однако я хочу сделать это программно.Поэтому я написал такой код:

const { createClient } = require("webdav");

async function run() {
    const client = createClient(
        "https://mystore.mybigcommerce.com/dav",

        {
            username: "myemail@email.com",
            password: "mypassword"
        }
    );

    const contents = await client.getDirectoryContents("/"); 
}

run();

Это мой код для получения содержимого каталога.Я скопировал его с https://github.com/perry-mitchell/webdav-client#usage. Я скопировал электронную почту и пароль с сайта BigCommerce.

Компьютер возвращает (node:32672) UnhandledPromiseRejectionWarning: Error: Request failed with status code 401 после запуска сценария.

Если я введу URL-адресв веб-браузере и введите правильное имя пользователя и пароль, он возвращает это:

<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
    <s:exception>Sabre\DAV\Exception\NotImplemented</s:exception>
    <s:message>
        There was no plugin in the system that was willing to handle this GET method. Enable the Browser plugin to get a better result here.
    </s:message>
</d:error>

Надеюсь, вы, ребята, можете узнать, что происходит, спасибо.

1 Ответ

0 голосов
/ 29 декабря 2018

Вам понадобится клиент, поддерживающий Digest Auth, а не только Basic.Похоже, что был разговор о добавлении поддержки дайджеста в клиент WebDAV, который вы используете.Этот PR может быть хорошей отправной точкой:

https://github.com/perry-mitchell/webdav-client/pull/96

...