OpenId через Curl - PullRequest
       10

OpenId через Curl

16 голосов
/ 28 марта 2011

Как я могу сделать аутентификацию на основе OpenId, используя Curl?На первом месте я могу это сделать?С уважением, Аллахбакш

1 Ответ

9 голосов
/ 29 марта 2011

Полагаю, вы говорите о командной строке 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 перенаправления или в скрытых полях формы.

...