2014-04-19 29 views
5

Próbuję zintegrować serwer Oauth2 z interfejsem API i strasznie utknąłem. W tym przykładzie zastosowano 3 różne strategie (lokalna, podstawowa, na okaziciela); Czy istnieje wyjaśnienie tego? Jak utworzyć klucze i tajne klucze klienta? Czy istnieje działający przykład prostego logowania dla użytkowników?oauth2orize za pomocą interfejsu API?

Odpowiedz

4

W celu późniejszego wykorzystania, załatałem wszystko razem w małym, zrozumiałym przykładzie. oauth2api

5

Tak, masz bóle głowy :). To nie jest łatwe do wdrożenia strategii, ale tutaj jest pełna przykładów pracy z serwerem tokena i tak dalej:

https://github.com/jaredhanson/oauth2orize

zajęło mi kilka tygodni, aby owinąć głowę wokół niego i co pomogło to zrozumieć Specyfikacja Oauth2. Istnieje wiele ruchomych części, w skrócie:

  1. Użytkownik kontaktuje się z usługodawcą (tj. Mój webmail).
  2. Webmail oferuje uwierzytelnienie Facebook'a, kliknięcia użytkownika i przekierowanie użytkownika do punktu końcowego autoryzacji FB na fb.com
  3. FB mówi, hej, Webmail chce uzyskać dostęp do twojej poczty, pozwolisz? Użytkownik mówi tak wtedy
  4. FB przekierowuje użytkownika z „token dostępu” tartego do Webmail, z powrotem do poczty zwrotnej URL
  5. Webmail, dostaje, że dostęp żeton i używa go do Webmail do FB wywołań API w imieniu użytkownika .

Jak widać pojawiają się komplikacje, że istnieje potrzeba serwera tokenów, który należy zapewnić, aby zapewnić, że poczta internetowa jest zarejestrowana na serwerze tokenu jako "znany dostawca", więc użytkownik udziela Webmailowi ​​pozwolenia na dostęp do FB w ich imieniu.

Po stronie Twojej poczty internetowej nie będziesz używać żadnej ze strategii lokalnych/podstawowych/przenośnych. Użyjesz strategii paszportowej oauth2. Nośnik jest prawidłową strategią interfejsu API podobną do prezentacji klucza API. Jeśli nie potrzebujesz uprawnień użytkownika, aby przyznać dostęp do interfejsu API, bardzo zalecam korzystanie z strategii paszport-http-okaziciela i nie masz żadnych problemów.

Mam nadzieję, że to pomaga.

3

Spójrz na numer 4. Próbka działa bardzo łatwo: https://github.com/scottksmith95/beerlocker

Używaj listonosza i utwórz użytkownika testowego z delegowania do localhost: 3000/api/użytkowników nazwa YourName hasło yourPass

Następnie użyj tego do zalogowania się podczas testowania interfejsu API.

Powiązane problemy