如何使用Curl进行基于OpenId的身份验证? 我首先可以这样做吗? 问候, Allahbaksh
答案 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或隐藏表单字段中传递。