2011-10-20 9 views
17

Używam facebooka SSO w mojej aplikacji na iOS i to działa poprawnie. Teraz chciałbym użyć tej informacji - użytkownik jest weryfikowany na Facebooku za pomocą swojego identyfikatora - na moim serwerze. Ale jak mogę - bezpiecznie - przekazać te informacje na serwer?użyj autoryzacji klienta Facebook i iOS na serwerze

Domyślam się, że muszę wysłać identyfikator uid i prawdopodobnie authToken, który dostałem z Facebooka na mój serwer? Czy ktoś mógłby przedstawić ogólne podejście do tego?

Mimo że nie powinno to mieć znaczenia dla mojego pytania, mój serwer pracuje na szynach i wymyśla w celu uwierzytelnienia. Mam również login na Facebooku działający tam osobno, ale chcę użyć już wykonanej autoryzacji od klienta na serwerze. Mylące ...

Odpowiedz

35

Natknąłem się na this post, który pomógł mi zrozumieć problem i rozwiązanie.

Popraw mnie, jeśli widzisz jakieś problemy.

Ideą jest przekazanie tokena uwierzytelnienia do aplikacji szyny. Token uwierzytelniania działa tylko wtedy, gdy obie aplikacje używają tego samego sekretu aplikacji.

więc przepływ jest tak:

  1. iOS uwierzytelnić. Weź token Facebooka użytkownika i prześlij go do aplikacji rails.
  2. Aplikacja Rails pobiera token uwierzytelniający, wysyła go na graph.facebook.com/?auth_token=XXX. Odpowiedź powinna być obiektem json użytkownika.
  3. Wykonaj odpowiedź obiektu użytkownika, aby znaleźć identyfikator UID i dopasować go do użytkownika w bazie danych. Jeśli identyfikator UID nie istnieje, utwórz nowego użytkownika i ustaw nowy identyfikator UID.
+0

Dzięki za ten wpis! Zastanawiam się, dlaczego nie zrobiłem tego sam, ponieważ w zasadzie dokładnie odpowiada na moje pytanie. – Dennis

+6

To w zasadzie przepełnienie stosu. – jgthms

Powiązane problemy