OpenId通过Curl

All*_*lah 16 openid authentication rest curl

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

Yan*_*eau 10

我想你在谈论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
Run Code Online (Sandbox Code Playgroud)

然后将您的OpenID发布到内容提供商:

curl -iSsL --user-agent 'Mozilla/5.0' --cookie cookies --cookie-jar  cookies \
              --data openid="$myopenidurl" \
              http://contentprovider.example.com/login
Run Code Online (Sandbox Code Playgroud)

这假设内容提供商已被授权使用身份提供者.然后得到你的内容:

curl -iSsL --user-agent 'Mozilla/5.0' --cookie cookies --cookie-jar  cookies \
              http://contentprovider.example.com/interesting/content
Run Code Online (Sandbox Code Playgroud)

请注意,这种方法并不简单,因为我在代码中对POST uris和字段进行了硬编码.要分离客户端和服务器,必须从响应中提取uris和字段名称.在bash脚本中,您可以使用sed例如.

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