Ответ 1
Я предполагаю, что вы говорите о командной строке curl, а не в библиотеке. Я не пробовал, но согласно тому, что я знаю об OpenID и завитке, это должно быть возможно. Однако не полностью автоматизирован. Вам нужно будет "разобрать" контент поставщика удостоверений и страниц входа в контентный контент, если вы хотите быть действительно спокойным и универсальным. Если вы знаете, куда идете, и не возражаете, чтобы соединить ваш сервис и клиент (без ненависти), вы можете сначала выполнить аутентификацию с поставщиком удостоверений, например:
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
Обратите внимание, что этот подход не успокаивается, так как я жестко закодировал POST-uris и поля в коде. Чтобы разделить клиент и сервер, имена вирусов и полей должны быть извлечены из ответов. В bash script вы можете использовать sed
, например.
Я думаю, что это должно сработать, но если нет, тогда вам нужно будет выполнить перенаправления и извлечь URI и формы, поскольку некоторые параметры могут быть переданы в URI перенаправления или в скрытых формах.