Oauth / Twitter Auth Adapter Zend Framework

Autor Steven Lloyd Watkin , laupäev 23. aprill 2011 15:57

Töö jätkub (aeglaselt) minu uus Twitter -põhine rakendus. Järgmise paari aasta riigipühadel Loodan, et saan hoogu läheb jälle projekti (in-hoolimata suurepärane ilm hetkel). Igatahes, minu järgmine ülesanne oli luua autentimise adapter Zend Framework . Mul oli töö login rakendamist, kuid millel langus Auth adapter Zend Framework tundus ahvatlev ettepanek, nii et ma loonud ....

(Ma ei lähe läbi Oauth või oled registreerinud oma taotluse twitter, seal on sadu juhendid ja selle üsna lihtne protsess igal juhul.)

Naudi Consumer Confidence

Vahe Oauth ja muud authenication adapterid Zend Framework on, et Oauth nõuab suunata edasi-tagasi oauth osutaja ja taotluse server kliendi poolt. Seega protsess ei ole päris nii otse edasi lihtsalt soojaks mõned üksikasjad andmebaasi või kontrollimiseks taotluse järgi. Õnneks Zend Framework komponentide, nagu Zend_Oauth_Consumer võtta palju valu ära ja selle lihtsalt tööd auth adapter teha nõutav meetod nõuab.

Sest juhend kasutades Zend_Auth ja esituskunstide autentimine Zend Framework on search google, või kontrollida see Juhendaja poolt Matthew Weier O'Phinney - Login ja autentimine .

Kasutus

Selleks, et kasutada autentimist adapter sa pead läbima kahe objekti kaudu ehitaja. Esimene on astme Zend_Oauth_Consumer luua oma Oauth poole. Olen teinud seda Twitter teenistus ja te näete kiire tükk, et siin - Logi Twitter kasutades Zend Framework . Ma kasutan oma rakendamine, kus ma kehtestati "Autoriseeri URL", nagu ma ei taha kasutaja olla palutakse anda luba taotluse iga kord, kui nad üritavad sisse logida. Teine parameeter on astme Zend_Session_Namespace mis on instantiated koos namespace kuhu soovite paigutada autentimise andmeid. Minu koodi olen midagi järgmist:

  $ Config = array (
     "CallbackUrl '=> ... tagasihelistamisnõude url ...
     "SiteUrl '=>' https: / / twitter.com / oauth"
     "ConsumerKey '=> ... tarbija-key ...
     "ConsumerSecret '=> ... saladus-key ...
 );
 $ Tarbija = new Zend_Oauth_Consumer ($ config);
 $ Tarbija-> setAuthorizeUrl ("https: / / twitter.com / oauth / kinnitavad");
 $ Istungil = new Zend_Session_Namespace (Pro_Auth_Adapter_Twitter: AUTH_NAMESPACE);
 $ AuthAdapter = new Pro_Auth_Adapter_Oauth ($ tarbija, $ istungil); 

Üleskutse ->authenticate() kohta adapter siis põhjus suunavad Oauth pakkuja (jälle minu puhul Twitter). Pärast naasmist kohaldamise teine ​​kõne ->authenticate() tegelikult täidab autentimine ise.

Kui sa soovisid kasutajal initally Soovitud lehekülge siis kui teie autentimise staatuse kontrollitakse iga taotluse siis lihtsalt kindlaks asjakohane "callBackUrl" parameetri juures laadimisaja saaksin kasutaja oma algselt mõeldud sihtkohta.

Üks viimase funktsiooni Lisasin oli võimalus saata täiendavaid parameetreid kasutades addParameter() ja setParameters() meetoditega. Lisades selle funktsionaalsus võimaldab saata täiendavaid GET parameetrid tegemisel esialgne suunavad Oauth poole. Minu puhul see võimaldab mul edasi massiivi võtme "force_login" ja väärtus tõsi mis sunnib Twitter palun logige uuesti sisse (isegi kui see on juba sisse loginud), mis on suurepärane mitme seotud tarbeks rakendusi.

Kood on saadaval minu github repo - Oauth auth adapter Zend Framework kood (kommentaarid oodatud!).

Edit: Paistab, et keegi teine ​​on juhtumi kohta samuti. Veel rakendamise vaata http://www.jasonawesome.com/2010/11/24/authenticating-to-twitter-with-zend_auth/

Jäta vastus













Panorama Theme poolt Themocracy

7 külastajaid online praegu
5 külalist 2 eest, 0 liiget
Max Külastusi täna: 20 kell 04:58 UTC
Selle kuu: 22 kell 2011/08/06 12:30 UTC
Sel aastal: 130 at 28-03-2011 22:40 UTC
Kogu aeg: 130 at 28-03-2011 10:40 UTC