OpenId через Curl

Как я могу выполнить проверку подлинности на основе OpenId с помощью Curl? На первом месте я могу это сделать? С Уважением, Allahbaksh

Ответы

Ответ 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 перенаправления или в скрытых формах.