OAuth / Twitter Auth sovitin Zend Framework
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.)
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/


















































