2011-03-28 74 views

回答

8

我想你是在談論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 URI和領域。要分離客戶端和服務器,必須從響應中提取uris和字段名稱。在bash腳本中,例如,可以使用sed

我認爲應該可以工作,但如果沒有,那麼你必須真正遵循重定向並提取URI和表單,因爲一些參數可以在重定向URI或隱藏表單域中傳遞。