Полагаю, вы говорите о командной строке curl, а не о библиотеке. Я не пробовал, но согласно тому, что я знаю об OpenID и curl, это должно быть возможно. Однако не полностью автоматизирован. Вам нужно будет «проанализировать» контент провайдера идентификации и страниц входа провайдера контента, если вы хотите быть действительно спокойным и общим. Если вы знаете, куда идете, и не против объединить свои услуги и клиента (без разногласий), вы можете сначала пройти аутентификацию у провайдера идентификации, например ::10000
curl -iSsL --user-agent 'Mozilla/5.0' --cookie cookies --cookie-jar cookies \
--data login=$mylogin \
--data passwd=$mypasswd \
https://identprovider.example.com/login
, а затем опубликуйте свой OpenID у контент-провайдера:
curl -iSsL --user-agent 'Mozilla/5.0' --cookie cookies --cookie-jar cookies \
--data openid="$myopenidurl" \
http://contentprovider.example.com/login
Предполагается, что контент-провайдер уже авторизован для использования провайдера идентификации.
Тогда получите ваш контент:
curl -iSsL --user-agent 'Mozilla/5.0' --cookie cookies --cookie-jar cookies \
http://contentprovider.example.com/interesting/content
Обратите внимание, что этот подход не является успокоительным, так как я жестко закодировал URI и поля POST в коде. Чтобы отделить клиент и сервер, имена uris и полей должны быть извлечены из ответов. Например, в скрипте bash вы можете использовать sed
.
Я думаю, что это должно работать, но если нет, то вам придется действительно следовать перенаправлениям и извлекать URI и формы, поскольку некоторые параметры могут быть переданы в URI перенаправления или в скрытых полях формы.