Вход на сервер Domino с использованием angularjs не возвращает DomAuthSessId - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь войти на сервер домино, используя angularjs, он возвращает 200 нормально, но при предварительном просмотре ответа это сама веб-страница.Пожалуйста, смотрите код ниже

$http({url: 'pathtodb/names.nsf?login',

            data: {
                'username': nm,
                'password': ps
            },
            method: 'POST',
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
                'X-Requested-With': 'XMLHttpRequest'
            },
            sync : true,
            handleAs : "text",
            'redirectto': 'https://pathtodb/$icon'
        })
        .then(function(response) {
                    console.log(response);
                    //var documentId=(response.headers('Location')).split('unid/')[1];
                    //console.log(documentId);
                    //$scope.forms.modPropForm['@unid']=documentId;
                });

Пожалуйста, дайте мне знать правильный путь, я не хочу использовать код додзё.

это ответ, который я получаю;

{data: "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Trans…="submit" value=""></div></form>↵</body>↵</html>↵", status: 200, headers: ƒ, config: {…}, statusText: "OK"}

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Я думаю, что ответом является форма входа в систему, как предлагает Умели.Domino возвращает статус 200 для этого.Если вы ожидаете возвращения JSON, то безопасный способ проверить, сработал ли вход в систему, - это если данные ответа начинаются с «<».Если вы ожидаете возврата HTML или «<» не является хорошим индикатором, то вы можете проверить, есть ли поле ввода с именем «пароль». </p>

Я сделал это и добился успеха, но я отправил учетные данные следующим образом:

$http({
url: ("mystuff.thing/db.nsf/xpage.xsp"),
    method: "POST",
    headers: {'Authorization': 'Basic ' + btoa(authModel.userName + ':' + authModel.pwd),  'Content-Type': 'application/json; charset=utf-8'},
    data: JSON.stringify(result)
})
.then(function(response) { etc .. })

То есть: base64-кодирует информацию аутентификации (функция btoa javascript) и отправляет ее как часть заголовка.

0 голосов
/ 24 октября 2018

Является ли полученная страница формой для входа?Тогда что-то с Аутентификацией пошло не так.Статус 200 возвращается, даже если аутентификация не удалась.
Если это не форма входа в систему, то с вами все должно быть в порядке.Если файлы cookie от domino настроены только на http, вы не можете проверить их в своем коде JS.

...