Wpis z mikrobloga

Cześć.
Dzisiaj na celownik biorę OAuth2. Weźmy na przykład Spotify i Facebooka. Chciałbym korzystać ze Spotify, ale chcę użyć konta z FB. Schemat działania rozumiem - zostajemy przekierowani na stronę FB, gdzie jest podsumowanie jaka aplikacja chce otrzymać dostęp do konkretnych rzeczy, np. zdjęcia profilowego, imienia, nazwiska, daty urodzenia, emaila.
I teraz zastanawiam się jak aplikacja powinna to obługiwać (w tym przypadku Spotify).
Czy trzyma ona udostępnione dane z FB we własnej bazie danych?
Co jeżeli użytkownik zmieni email na FB? Czy wtedy trzeba się wylogować i zalogować ponownie, aby zmiany były zapisane po stronie Spotify?
Jak robicie to w swoich aplikacjach?

#naukaprogramowania #programowanie #webdev
  • 5
  • Odpowiedz
@bananowy_szejk: jak chcesz korzystać z Spotify to użytkownika przekierowujesz do Sporify i nie przejmujesz się jak to jest obsługiwane dalej, to czy tam jest FB, Twitter czy inne Google cię wcale nie interesuje, nawet w najmniejszym stopniu.
  • Odpowiedz
@bananowy_szejk: Spotify w tym scenariuszu ma poprostu swoja baze userow. Po tym jak user loguje sie za pomoca fb, spotify dostaje od niego podstawowe dane (plus te ktore byly poproszone w dodatkowych zgodach). Spotify dostaje tez token, za ktorego pomoca moze tez odpytac facebooka o dane konkretnego usera.

W skrocie, spofity ma wlasna baze w ktorej trzyma dane usera pochodzacego z zewnatrz.
  • Odpowiedz
@bananowy_szejk: jest to realizowane za pomocą scenariusza "Authorization Code Grant" opisanego w RFC OAuth2 tu: http://www.rfcreader.com/#rfc6749_line1027

twoja aplikacja (lub np. spotify) jako klient OAuth2 prosi FB (a dokładnie część FB opisaną w RFC jako "authorization server") o access-token, do którego przypisany jest pewien zakres uprawnień (określony przez "scope"). Jeśli użytkownik uwierzytelni się i zaakceptuje zakres uprawnień którego żąda twoja apka (lub jak w przykładzie - spotify), możesz z takim tokem odpytywać
  • Odpowiedz
@bananowy_szejk: Z tymi tokenami, to jest tak ze niby OAuth2 specyfikuje jak to powinno dzialac, ale czesto sa jakies male roznice. W fb ten token jest o ile dobrze pamietam bez ttl zadnego, ale chyba user moze miec tylko 50 jakby aplikacji (a przynajmniej kiedys tak bylo) i moze sie nagle okazac ze twoja aplikacja straci dostep do tych danych. Facebook caly czas miesza z tym i trzeba dosc systematycznie czytac
  • Odpowiedz