OAuth / Twitter Auth Adapter Zend Framework

Által Steven Lloyd Watkin , szombat 23 április 2011 15:57

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.)

Élvezze a fogyasztói bizalom

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/

Hagy egy Válaszol













Panoráma téma Themocracy

6 online látogató jelenleg
5 vendég, 1 bot, 0 tag
Max. látogatók ma: 20 at 04:58 UTC
Ebben a hónapban: 22., 2011/08/06 12:30 UTC
Ebben az évben: 130 at 28-03-2011 22:40 UTC
Az összes idő: 130 at 28-03-2011 10:40 UTC