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
Tworzymy konsumenta dla Twittera w PHP
- Zaczynamy od zarejestrowania klienta/konsumenta na http://twitter.com/oauth_clients. Podajemy nazwę naszej "aplikacji", a także jej typ (aplikacja webowa) i adres callback - adres URL na naszej stronie, na który zostanie przekierowany użytkownik po pomyślnej autoryzacji na stronie Twittera.

- Po udanym zarejestrowaniu aplikacji wygenerowany zostanie klucz Consumer key oraz Consumer secret, a także podane zostaną podstawowe adresy URL API potrzebne przy wykorzystaniu API:
- Request token URL: http://twitter.com/oauth/request_token
- Access token URL: http://twitter.com/oauth/access_token
- Authorize URL: http://twitter.com/oauth/authorize
- Korzystając z binarnego rozszerzenia z Pecl kod do uwierzytelnienia użytkownika wygląda tak:

- Po udanym zalogowaniu na Tweeterze użytkownik zostanie przekierowany na adres URL podany jako callback. Oto przykład kodu obsługującego zwrotkę:
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.
