OAuth / Twitter Auth sovitin Zend Framework

By Steven Lloyd Watkin , lauantai 23 huhtikuu 2011 15:57

Työ jatkuu (hitaasti) minun uusi Twitter -pohjainen sovellus. Seuraavan parin vapaapäivät Toivon saavani vauhtia uudelleen hankkeessa (-vaikka ihana sää tällä hetkellä). Joka tapauksessa, minun seuraava tehtävä oli luoda todennuksen sovitin Zend Framework . Olin työpäivän kirjautuminen täytäntöönpanoa, mutta joiden lasku Auth sovitin Zend Framework tuntui houkuttelevan ehdotuksen, joten olen luonut ....

(En aio käydä läpi OAuth tai rekisteröimällä sovelluksen kanssa viserrys, ei satoja oppaita ja melko yksinkertainen prosessi joka tapauksessa.)

Nauti Kuluttajaluottamus

Ero OAuth ja muut authenication sovittimet Zend Framework on, että OAuth vaatii suuntaamaan edestakaisin OAuth palveluntarjoajan ja pyytää palvelimen asiakas. Siksi prosessi ei ole aivan yhtä suoraviivaista kuin yksinkertaisesti etsivät joitakin yksityiskohtia tietokantaan tai tarkistaa pyynnöstä otsikot. Onneksi Zend Framework komponentteja, kuten Zend_Oauth_Consumer ottaa paljon kipua pois ja sen vain työtä auth sovittimen tekemään tarvittavat metodikutsuja.

Jotta käyttöopas Zend_Auth ja suorittamalla todentaminen Zend Framework on Google-haku, tai tutustu tämän opetusohjelman Matthew Weier O'Phinney - kirjautumiseen ja autentikointiin .

Käyttö

Jotta voit käyttää todennusta sovittimen tarvitset läpäistävä kaksi esineitä kautta rakentaja. Ensimmäinen ilmentymä Zend_Oauth_Consumer perustaa oman OAuth tarjoaja. Olen tehnyt tätä Twitter palveluun ja voit nähdä nopeasti pala, että täällä - Kirjaudu sisään Twitter avulla Zend Framework . Olen käyttäen täytäntöönpano, kun otan "Vahvista URL", koska en halua käyttäjän olevan pyydetään lupaa hakemuksen joka kerta kun he yrittävät kirjautua. Toinen parametri on esimerkki Zend_Session_Namespace on instantiated kanssa nimiavaruus johon haluat sijoittaa todentamisen yksityiskohdista. Minun koodi olen jotain seuraavista:

  $ Config = array (
     "CallbackUrl '=> ... takaisinsoittoa url ...
     "SITEURL '=>' https: / / twitter.com / OAuth"
     "ConsumerKey '=> ... kuluttaja-avain ...
     "ConsumerSecret '=> ... salainen-avain ...
 );
 $ Kuluttaja = uusi Zend_Oauth_Consumer ($ config);
 $ Kuluttaja-> setAuthorizeUrl (https: / / twitter.com / OAuth / vahvistaa ");
 $ Istunto = uusi Zend_Session_Namespace (Pro_Auth_Adapter_Twitter: AUTH_NAMESPACE);
 $ AuthAdapter = uusi Pro_Auth_Adapter_Oauth ($ kuluttaja, $ istunto); 

Calling ->authenticate() sovittimen sitten aiheuttaa uudelleenohjata OAuth toimittaja (jälleen minun tapauksessani Twitter). Palattuaan hakemuksen toisen puhelun ->authenticate() todella suorittaa todentaminen itse.

Jos halusi käyttäjä kykenee palaamaan perin pyydettyä sivua sitten jos sinun todennus tila tarkastetaan jokaisen pyynnön jälkeen yksinkertaisesti asettamalla sopiva "callBackUrl" parametri latausaikaa saisi käyttäjän alkuperäiseen määränpäähänsä.

Viimeinen ominaisuus Lisäsin oli mahdollisuus lähettää uusia parametreja addParameter() ja setParameters() menetelmiä. Lisäämällä tämä toiminto mahdollistaa lähettämisen lisäksi saada parametreja tehtäessä alkuperäistä uudelleenohjata OAuth tarjoaja. Minun tapauksessani tämä antaa minulle tapahtui jono avaimen "force_login ja arvo tosi, joka pakottaa Twitter pyytää teitä kirjautua uudelleen (vaikka jo kirjautunut), joka on suuri monen Viitatuimmat tili sovelluksia.

Koodi on saatavilla my GitHub Repo - OAuth auth adapteri Zend Framework koodi (kommentit tervetulleita!).

Edit: Näyttää joku muu on ollut asiassa hyvin. Toisen täytäntöönpanoon katso http://www.jasonawesome.com/2010/11/24/authenticating-to-twitter-with-zend_auth/

Jätä vastaus













Panorama Teema Themocracy

2 vierailijaa nyt
1 vierasta, 1 vastaan, 0 jäsentä
Max kävijöitä tänään: 20 klo 04:58 UTC
Tässä kuussa: 22 at 08.06.2011 00:30 UTC
Tänä vuonna: 130 at 28-03-2011 22:40 UTC
Kaikki aika: 130 at 28-03-2011 22:40 UTC