OpenId通过Curl

时间:2011-03-28 17:48:49

标签: rest authentication curl openid

如何使用Curl进行基于OpenId的身份验证? 我首先可以这样做吗? 问候, Allahbaksh

1 个答案:

答案 0 :(得分:9)

我想你在谈论curl命令行,而不是库。我没试过,但根据我所知道的OpenID和curl,它应该是可能的。但是,没有完全自动化。如果您想要真正的安静和通用,则必须“解析”身份提供者和内容提供者登录页面的内容。如果你知道你要去哪里并且不介意将你的服务和客户联系起来(没有hateoas),你可以先与身份提供者进行身份验证,例如:

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和字段进行了硬编码。要分离客户端和服务器,必须从响应中提取uris和字段名称。在bash脚本中,您可以使用sed作为示例。

我认为应该可行,但如果没有,那么你必须真正按照重定向并提取URI和表单,因为一些参数可以在重定向URI或隐藏表单字段中传递。