Войти на веб-страницу, используя токен подлинности с curl

Я пытаюсь создать пользовательскую программу (или скрипт) для входа на веб-страницу и затем загрузить файл. Страница входа имеет форму с 2 текстовыми полями (имя пользователя и пароль) и скрытое поле "authenticity_token". Я читал о токене подлинности.

Я попробовал собственный скрипт bash, используя curl, но он не работает. Может кто-нибудь взглянуть на мой код и сказать, что с ним не так?

#!/bin/bash
#Pulls the login page and strips out the auth token
authToken=`curl -L -c cookies.txt --silent 'http://xxx.xxxxx.xx' | grep authenticity_token | awk -F'value="' '{print $2;}' | awk -F'="' '{print $1;}'`

echo $authToken

# Posts all the pre-URI-encoded stuff and appends the URI-encoded auth token
curl -L -c cookies.txt -b cookies.txt --data-urlencode authenticity_token=$authToken  --data-urlencode 'username=my-username' --data-urlencode 'password=my-pass'  'http://xxx.xxxxx.xxx/login' 

# access the page i want
curl -b cookies 'http://xxx.xxxxx.xxx/page_i_want_to_access'

Когда я использую свой браузер для входа на веб-страницу, если регистрация успешна, сервер перенаправляет меня на следующую страницу, но когда я использую свой сценарий, сервер отвечает пакетом с заголовком "200 OK" вместо "302 redirect" (Я использую Wireshark для захвата пакетов). Поэтому я думаю, что аутентификация не работает.

Любые предложения, пожалуйста?

0 ответов

Другие вопросы по тегам