OAuth的/ Twitter的權威性適配器為Zend框架
工作仍在繼續(緩慢地)我的新Twitter的應用程式。 在接下來的幾個銀行假期,我希望得到的勢頭再次在項目(內儘管有美好的天氣目前)。 無論如何,我的下一個任務是創建一個認證適配器為Zend框架 。 我有一個登錄的實施工作,但有一個下降權威性適配器為 Zend框架似乎是一個有吸引力的建議,使我創造了它...。
(我不打算通過OAuth的或登記申請與Twitter,有數百個導遊和它是一個相當簡單的過程,無論如何。)
之間的差異的OAuth和其他authenication適配器在Zend框架是OAuth的需要重定向來回之間的OAuth的提供者和請求的服務器的客戶端。 因此,這個過程是不是很簡單的直線向前查找數據庫中的一些細節或檢查請求頭。 幸運的是Zend Framework的組件,如Zend_Oauth_Consumer ,忍受不了遠離疼痛和剛工作的認證適配器,使所需的方法調用。
對於Zend_Auth的使用指南,並進行驗證與Zend框架有一個搜索谷歌,或查看本教程由馬修緯二路O'Phinney - 登錄和認證 。
用法
為了使用驗證適配器,則需要通過在兩個對象通過構造。 第一個是實例 Zend_Oauth_Consumer設立的OAuth的供應商。 我一直在做這與Twitter的服務,你可以看到一個快件上,在這裡- 想在Twitter的使用Zend Framework 。 我用我的執行在那裡我將“授權網址”,因為我不希望用戶被要求給予許可的應用程序每次嘗試登錄。 第二個參數是一個實例是實例化Zend_Session_Namespace的命名空間為您希望將身份驗證的細節。 在我的代碼我有類似以下內容:
= $配置陣列( 'callbackUrl'=>“...回調網址 ... 'siteUrl'=>“通過 https:/ / twitter.com / OAuth的', 'consumerKey'=>“...消費的關鍵 ... 'consumerSecret'=>“...秘密鑰匙 ..., ); 新Zend_Oauth_Consumer消費 = $($配置); $消費> setAuthorizeUrl('通過 https:/ / twitter.com / OAuth的/認證'); 新Zend_Session_Namespace的會議 = $(Pro_Auth_Adapter_Twitter::AUTH_NAMESPACE); 新Pro_Auth_Adapter_Oauth $ authAdapter =($消費者,$會議);
呼喚->authenticate()適配器上會導致重定向到OAuth的供應商(在我的情況再次Twitter的)。 在返回到應用程序的第二次調用->authenticate()將實際執行認證本身。
如果你希望用戶返回到initally請求的頁面提供您的身份驗證狀態,然後檢查每個請求然後只需設置適當的'callBackUrl'參數在加載時會得到用戶到原有的目的地。
最後一個功能,我將是能夠發送額外的參數使用addParameter()和setParameters()方法。 此功能允許添加額外的GET參數發送時的初始重定向到OAuth的供應商。 在我而言,這使我傳遞一個陣列的一個關鍵的'force_login'和真正的價值強制Twitter來請你再次登錄(即使已經登錄),這是偉大的多鏈接帳戶的申請。
該代碼可以在我的GitHub的回購- OAuth的認證適配器為Zend Framework代碼 (評論歡迎!)。
編輯:看來別人已對此案以及。 對於另一個實現,請參閱http://www.jasonawesome.com/2010/11/24/authenticating-to-twitter-with-zend_auth/


















































