OAuth / Twitter Auth Adapter Zend Framework
A munka folytatódik (lassan) az én új Twitter -alapú alkalmazást. Az elkövetkező pár munkaszüneti napokon remélem, hogy a lendületet ismét a projekt (in-ellenére a csodálatos időjárás jelenleg). Különben is, én a következő feladat az volt, hogy egy hitelesítési adaptert a Zend Framework . Volt egy működő belépés végrehajtására, de mivel egy csepp Auth adapter Zend Framework tűnt vonzó javaslat, ezért hoztam létre, hogy ....
(Én nem megyek át OAuth vagy regisztráció az alkalmazás a Twitter, van több száz útmutatók és egy viszonylag egyszerű folyamat egyébként.)
A különbség OAuth és a többi authenication adapterek a Zend Framework, hogy OAuth igényel átirányítása között oda-vissza a OAuth szolgáltató és a kérelmező szerver a kliens. Ezért a folyamat nem annyira egyenesen előre, mint egyszerűen csak keresi fel néhány részletet egy adatbázisban vagy ellenőrzésre fejlécében. Szerencsére a Zend Framework komponensek, mint például a Zend_Oauth_Consumer , hogy sok a fájdalmat, és hogy csak a munka az auth adapter számára a szükséges módszer hívások.
Ahhoz, hogy egy útmutató a Zend_Auth és előadóművészet hitelesítés Zend Framework egy keresés a google, vagy nézd meg ezt a tutorialt, Matthew Weier O'Phinney - bejelentkezés és azonosítás .
Használata
Annak érdekében, hogy a hitelesítési adaptert akarsz átadni két objektumok segítségével a kivitelező. Az első egy példánya Zend_Oauth_Consumer létre az Ön OAuth szolgáltató. Már ezt a Twitter szolgáltatás és láthatjuk egy gyors darab, hogy itt - Jelentkezzen be Twitter segítségével Zend Framework . Én vagyok a saját végrehajtása, én meg a "engedélyezése URL-t", mint én nem akarom felhasználó az a kérdés, hogy engedélyt ad a kérelem minden egyes alkalommal, amikor megkísérli a bejelentkezést. A második paraméter egy példánya Zend_Session_Namespace amely példányosított a névtér, amelybe szeretné helyezni a hitelesítési adatokat. Az én kód van valami, mint a következő:
$ Config = array ( 'CallbackUrl' => ... Visszahív-url ... 'SITEURL' => 'https: / / twitter.com / OAuth " 'ConsumerKey' => ... fogyasztó-kulcs ..., 'ConsumerSecret' => ... titkos kulcsot ... ); $ Fogyasztói = new Zend_Oauth_Consumer ($ config); $ Fogyasztó-> setAuthorizeUrl ("https: / / twitter.com / OAuth / hitelesítik"); $ Session = new Zend_Session_Namespace (Pro_Auth_Adapter_Twitter:: AUTH_NAMESPACE); $ AuthAdapter = new Pro_Auth_Adapter_Oauth ($ fogyasztó, $ session);
Hívás ->authenticate() az adapter, akkor okoz átirányítja a OAuth szolgáltató (ismét az én esetemben Twitter). Miután visszatért a kérelem a második hívás ->authenticate() ténylegesen elvégzi a hitelesítést is.
Ha kívánja a felhasználó, hogy visszatérjen a initally kért oldal, akkor feltéve, hogy a hitelesítési állapot ellenőrzése az egyes kérelmek akkor egyszerűen beállítható a megfelelő "callBackUrl" paraméter betöltési időt kapnánk, hogy a felhasználó az eredetileg tervezett rendeltetési helyre.
Egy utolsó jellemző hozzátettem volt a lehetőség, hogy küldjön további paramétereket a addParameter() és setParameters() módszerek. Hozzátéve, ez a funkció lehetővé teszi, hogy a küldő további GET paraméter, ha így az első átirányítja a OAuth szolgáltató. Az én esetemben, ez lehetővé teszi számomra, hogy adja át a tömböt, a legfontosabb a "force_login" és értéke igaz, ami arra kényszerít Twitter kérje meg újra bejelentkezni (akkor is, ha már bejelentkezett), amely kiválóan alkalmas multi-linked-számla alkalmazások.
A kód elérhető a GitHub repo - OAuth auth adapter Zend Framework kódját (észrevételeit szívesen!).
Edit: Úgy látszik, valaki más volt az ügyben is. Egy másik végrehajtás lásd http://www.jasonawesome.com/2010/11/24/authenticating-to-twitter-with-zend_auth/


















































