Как войти на сервер Domino с помощью angularjs?

Я хочу войти на сервер Domino с веб-страницы angularjs. Сама страница находится в базе данных, с которой я хочу пройти аутентификацию, поэтому она не очень удаленная. Это мой код:

return $http({
                url: 'http://servername/names.nsf?login',
                data: {
                    'username': 'myusername',
                    'password': 'whateverpassword',
                    'redirectto': '/path_to_db.nsf/$icon'
                },
                method: 'POST',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                    'X-Requested-With': 'XMLHttpRequest'
                }
            })
            .then(loginComplete)
            .catch(loginFailed);

В ответ я получаю ответ HTTP 200. Когда я выполняю вход вручную, я получаю HTTP 302 и файл cookie DomAuthSessId. Таким образом, запрос ведет себя по-другому. Когда я делаю сообщение, доступен файл cookie SessionID, поэтому должен быть сеанс с сервером. Любые идеи о том, что я забываю здесь? Заранее спасибо!

Может быть, мне тоже следует описать, чего я пытаюсь достичь:

  1. Получить имя пользователя и пароль из другого источника
  2. Используйте их для входа в систему и получения сеанса с сервером Domino без запроса.

В конечном итоге мы будем использовать SAML для единого входа, но мы все еще используем Domino 8.5.3, поэтому пока это не вариант.


person Martin Vereecken    schedule 28.10.2016    source источник


Ответы (1)


Мартин, как насчет ACL, если страница Angular находится в NSF?

Я использую базу данных Domino с пользовательским интерфейсом Angular - вообще без XPages (за исключением средства запуска для \index.html). ACL заставляет вас входить в систему при открытии NSF, поэтому, когда открывается страница Angular, вы проходите аутентификацию.

Могли бы вы делать это до тех пор, пока не обновитесь до Domino 9 и не будете использовать SAML?

person Travis Hiscock    schedule 01.11.2016
comment
Ключ: я не хочу, чтобы пользователь аутентифицировался вручную. Там задействован пакетный считыватель, который дает мне имя пользователя, и оттуда я хочу автоматически аутентифицироваться на сервере. - person Martin Vereecken; 02.11.2016