Я работаю над сценарием для автоматизации подачи заявок в нашу систему поддержки. Пока что это очень простая, но работающая система. У меня есть страница с формой, которая автоматически отправляет через JavaScript со значением формы на основе запрошенного URL.
Это прекрасно работает, когда вы заходите на страницу из браузера. Предполагая, что вы уже прошли аутентификацию на странице системы заявок, автоматически отправленная форма успешно отправляет данные своей формы, и вы попадаете в список заявок, где вы видите только что отправленную заявку. К сожалению, конечно, система тикетов — это защищенный HTTPS-сайт, поэтому, если вы не вошли в систему, вы попадаете на страницу входа в систему, и автоматическая регистрация не выполняется.
Идея, однако, заключается в том, чтобы запустить эту автоматическую отправку по расписанию или запустить ее удаленно, когда инициатор не обязательно будет человеком и не будет следовать отправке формы, чтобы присматривать за ней с помощью вкусных файлов cookie для аутентификации.
Так что, будучи новичком в этой области, мне кажется, что у меня есть варианты: а) погрузиться и запутаться, прослушав ответ на автоматическую отправку, определить, возвращается ли страница входа в систему, и отправить некоторые учетные данные через JS (не так уж много). поскольку эта автоматизация будет выполняться исключительно на защищенном сервере), затем повторно отправьте форму … или B) каким-либо образом сделайте это надлежащим образом, предварительно проверив аутентификацию. Но на этом мои знания заканчиваются.
Я прочитал этот похожий вопрос, но я все еще терплю неудачу. Возможна ли эта надлежащая автоматизация только в том случае, если рассматриваемый сервер поддерживает некоторую форму API токен-аутентификации? Нет ли более прямого способа подключения и запроса / отправки данных на сайт HTTPS? Я замалчивал некоторые введения в cURL, но еще не углубился.
NB. У меня нет прямого доступа к базе данных тикетов, коду или к процессам / учетным записям веб-сервера, на которых она выполняется. я наверное может запускать процессы на одной и той же машине, поэтому я не особо обеспокоен безопасностью автоматической отправки учетных данных, но, вероятно, это так.
Во-первых, если ваша система заявок направляет вас на экран входа в систему, если вы еще не прошли проверку подлинности, не имеет ничего общего с HTTPS — это будет либо имя пользователя / пароль <form>
который затем устанавливает cookie, или это будет WWW-Authenticate
заголовок. Каждый из них может использоваться независимо от того, используете ли вы HTTPS или обычный HTTP.
Какой бы метод он ни использовал, если вы планируете делать это в веб-браузере, скорее всего, вы не сможете, потому что CORS (совместное использование ресурсов), вероятно, не был настроен, чтобы позволить это.
Однако, если вы делаете это из сценария, такого как Node.js, Python, PHP или чего-то еще, что может делать произвольные HTTP (S) -просмотры, вы можете захотеть посмотреть на такой поток:
Для более простого случая, когда система использует WWW-Authenticate
заголовок это будет так:
WWW-Authenticate
заголовок в HTTP 401
ответ полученAuthorization
заголовок с соответствующим значениемHTTP 200
вместо HTTP 401
)Authorization
Заголовок еще раз при отправке заявки.С помощью WWW-Authenticate
описано в Википедии для основной а также дайджест аутентификация.
Других решений пока нет …