RkBlog

Hardware, programming and astronomy tutorials and reviews.

Protokół OAuth w PHP

Opis i wykorzystanie protokołu OAuth w autoryzacji użytkowników względem API serwisów takich jak Twitter, czy Gadu Gadu.

OAuth to otwarty protokół pozwalający na bezpieczną autoryzację za pomocą API dla aplikacji desktopowych, mobilnych i aplikacji internetowych. OAuth pozwala użytkownikowi dać dostęp do jego informacji, opcji na stronie A (dostawcy OAuth, np. Twitter) innej stronie B (konsumentowi) bez podawania pełnych danych uwierzytelniających (np. bez podawania loginu i hasła). Standard te obecnie jest implementowany na coraz większej ilości strony, jako że pozwala im wystawiać bezpieczniejsze API, jak i dające pewność użytkownikami co zewnętrzna strona z nimi zrobi. Przykładowa prosta aplikacja webowa przedstawiona jest na twitteroauth.appspot.com - gdzie poprzez OAuth udostępniamy stronie ostatnie tweety z naszego konta na Tweeterze.

Lista dostawców, czyli stron udostępniających API poprzez OAuth jest dość długa. Na liście tej znajdziemy Twittera, Google, MySpace, czy także Gadu Gadu. Dla twórców konsumentów - stron korzystających z takiego API dostępne jest wiele bibliotek dla różnych języków programistycznych.

OAuth i PHP

Oprócz prostej biblioteki OAuth na oauth.googlecode.com jest dostępne także binarne rozszerzenie na pecl.php.net. Obie biblioteki posiadają przykładowe skrypty. Dodatkowo znaleźć można w sieci różne gotowe skrypty i biblioteki na API OAuth różnych serwisów (jak np. dla Twittera). Rozszerzenie z pecl kompilujemy i instalujemy standardowo:
phpize
./configure
make
make install
Do php.ini dodajemy extension=oauth.so;.

Tworzymy konsumenta dla Twittera w PHP

Nie trzeba stosować binarnych rozszerzeń. Można także wykorzystać biblioteki napisane w czystym PHP, np. twitteroauth. Pobieramy kod za pomocą GITa (lub ręcznie jak go nie masz):
git clone git://github.com/abraham/twitteroauth.git
I edytujemy plik example/index.php wstawiając klucz i consumer secret.

Jeżeli chcesz umożliwić rejestrację/logowanie użytkowników za pomocą konta na Twitterze to prostszym rozwiązaniem może okazać się zastosowanie RPXnow.

RkBlog

17 October 2009;

Comment article