OAuth / Twitter Auth Adapter fyrir Zend Framework
Vinna áfram (hægt) á nýju Twitter -undirstaða umsókn. Á næstu frí banka ég vona að fá skriðþunga að fara aftur á verkefninu (í-þrátt fyrir yndislegt veður um þessar mundir). Engu að síður, verkefni mínum næst var að búa til auðkenningar millistykki fyrir Zend Framework . Ég átti að vinna innskráningu útfærslu, en með lækkun Auth millistykki fyrir Zend Framework virtist eins aðlaðandi tillögu, þannig að ég bjó hana ....
(Ég ætla ekki að fara í gegnum OAuth eða skrá umsókn þína með kvak, það er nokkur hundruð af leiðbeiningum og er þess nokkuð einfalt ferli veginn.)
Munurinn á milli OAuth og önnur millistykki authenication í Zend Framework er að OAuth krefst Áframsendi fram og til baka á milli OAuth té og biðja miðlara af viðskiptavininum. Því er ferlið ekki alveg eins og blátt áfram eins og einfaldlega að leita upp einhverjar upplýsingar í gagnagrunn eða stöðva beiðni haus. Sem betur fer Zend Framework hluti, svo sem Zend_Oauth_Consumer , taka mikið af verkjum í burtu og bara sitt starf af auth millistykki til að gera nauðsynlegar kallar aðferð.
Til að fylgja til að nota Zend_Auth og framkvæma sannprófun með Zend Framework hafa leitað á Google, eða kíkja á þetta Tutorial eftir Matthew Weier O'Phinney - Innskráning og auðkenningu .
Notkun
Til að nota sannvottun millistykki þú þarft að fara tvo hluti í gegnum framkvæmdaaðila. Sú fyrri er dæmi um Zend_Oauth_Consumer sett upp fyrir OAuth þjónustuaðilann þinn. Ég hef verið að gera þetta með's þjónustunni Twitter og þú getir séð skjótan stykki á að hér - Skráðu þig inn með Twitter nota Zend Framework . Ég er með framkvæmd mína þar sem ég stillt á "Heimila URL" eins og ég vil ekki notandi til að verða beðinn um að gefa leyfi til umsókn í hvert sinn sem þeir reyna að vera innskráður. The second breytu er dæmi af Zend_Session_Namespace sem er instantiated með Nafnrými inn sem þú vilt setja auðkennisupplýsingar. Í númerið sem ég hef eitthvað eins og eftirfarandi:
$ Config = array ( 'CallbackUrl' => ... svarhringingu-url ..., 'SiteUrl' => 'https: / / twitter.com / OAuth', 'ConsumerKey' => ... neytenda-lykill ..., 'ConsumerSecret' => ... leyndarmál-lykill ..., ); $ Neytandi = new Zend_Oauth_Consumer ($ config); $ Neytenda-> setAuthorizeUrl ('https: / / twitter.com / OAuth / staðfesta'); $ Fundur = new Zend_Session_Namespace (Pro_Auth_Adapter_Twitter:: AUTH_NAMESPACE); $ AuthAdapter = new Pro_Auth_Adapter_Oauth ($ neytenda, $ fundur);
Calling ->authenticate() á millistykki mun þá valda endurvísa til OAuth té (aftur í máli mínu Twitter). Við aftur að forritinu öðru símtalinu til ->authenticate() verður í raun að framkvæma sannprófun á sig.
Ef þú vildi notandi til að fara aftur í initally umbeðin síða svo sem auðkenning staða þín er merkt á hverja beiðni þá einfaldlega setja viðfang 'callBackUrl' viðeigandi þegar hlaða vildi fá notandann til að upphaflega áfangastað þeirra.
Eitt síðasta eiginleiki ég bætt var hæfni til að senda fleiri breytur með addParameter() og setParameters() aðferðir. Bæta þessa virkni gerir að senda fleiri GET breytum þegar fyrstu tilvísun til OAuth té. Í mínu tilfelli, þetta gerir mig að fara fylki með lykil af 'force_login og verðmæti satt sem þvingar Twitter að biðja þig skráðu þig inn aftur (jafnvel þegar skráður inn) sem er frábært fyrir multi-tengd-reikning forrit.
Kóðinn er í boði á endurhverfum minn GitHub - OAuth auth millistykki fyrir Zend Framework númerið (athugasemdir vel þegnar!).
Edit: Útlit eins og einhver annar hefur verið um málið eins og heilbrigður. Fyrir aðra framkvæmd finna http://www.jasonawesome.com/2010/11/24/authenticating-to-twitter-with-zend_auth/


















































