2014-05-08 22 views
9

Mam aplikację mobilną współpracującą z serwerem zaplecza, chciałbym zrozumieć, jakie są najlepsze praktyki dla używając Facebooka do zalogowania się (załóż konto), a następnie zsynchronizuj cały system.Jaki jest właściwy sposób na logowanie się do Facebooka dla aplikacji mobilnej (z serwerem node.js/passport.js)?

Oto, co rozumiem do tej pory: - Aplikacja mobilna może zalogować się na urządzeniu i uzyskać access_token - Token dostępu można przenieść na serwer. Zrobiłem proof of concept za pomocą paszportu-facebooka-tokena zahaczonego o jakąś trasę api.myhost.com/auth/facebook i wydaje mi się, że mogę uwierzytelnić użytkownika i odzyskać jego dane FB. Dlatego mogę go dopasować do istniejącego użytkownika w mojej bazie danych lub utworzyć nowy rekord.

Czego nie rozumiem: 1) Czy muszę używać https do przesyłania tokena FB na mój serwer?

2) Co należy zrobić w przypadku innych moich żądań, które mają zostać uwierzytelnione. Nie sądzę, że wyjście do FB na każde żądanie jest opcją. Jedną z opcji, która przychodzi do głowy, jest wygenerowanie innego (mojego) tokena dostępu i zwrócenie go w wyniku uwierzytelnienia FB.

Najprostszy sposób to zrobić, używając sesji z paszportem i facebookiem (tak, że identyfikator sesji cookie może być serializowany i rozszyfrowywany do identyfikatora użytkownika). Ale to oznacza, że ​​muszę utrzymywać trochę pamięci KV na sesje.

Innym sposobem jest wygenerowanie własnego tokenu losowego dla tego użytkownika, zwrócenie go wraz z ID użytkownika po pomyślnym zalogowaniu, zapisaniu go w rekordzie użytkownika i każde wywołanie interfejsu API od klienta należy podać tę parę identyfikatorów i tokenów i ponownie je potwierdzić za każdym razem ręcznie bez polegania na paszporcie. A może z oparciem na lokalnej strategii paszportowej?

Który z nich jest lepszy? Jakie są plusy/minusy każdego z nich?

2) Jeśli planuję użyć tokena FB do wysłania do FB i wykonywania analiz wykresów (znajomi itp.), I zamierzam zapisać token na serwerze. Jak często muszę go odświeżać? Za każdym razem, gdy aplikacja uruchamia się i odświeża token na kliencie, czy powinienem ponownie uwierzytelnić się przy użyciu mojego serwera za pomocą nowego tokena FB? A co z odświeżaniem tokenów FB użytkownika za pomocą połączeń między serwerami? Czy kiedykolwiek powinienem to zrobić, jeśli chcę zachować dostęp do danych FB użytkownika, ale użytkownik przestał używać mojego lub używa go zbyt rzadko?

Czy jest gdzieś książka kucharska z działającego systemu, który działa dobrze?

Dzięki!

+0

Czy kiedykolwiek znalazłeś tu coś przydatnego? – SJoshi

Odpowiedz

0

Facebook tokenu zabezpieczeń

Token, które zostały utworzone w telefonie aplikacji klienta jest dla swojej aplikacji na Facebooku, że dany identyfikator w uwierzytelniania. Zawsze korzystałbym z HTTPS podczas komunikowania się z tokenami przez Internet lub innych niestabilnych informacji.

Facebook żeton upływającym & orzeźwiający

Po wykonaniu uwierzytelniania w aplikacji mobilnej można często uzyskać czas upływający tokenu w odpowiedzi z tokena. Wygaśnięcie tokenu wyjaśniono w Facebook API.

Rodzime aplikacje mobilne korzystające z pakietów SDK Facebooka otrzymają długo trwające tokeny dostępu przez około 60 dni.Te żetony będą odświeżane raz dziennie, gdy osoba korzystająca z aplikacji wysyła żądanie do serwerów Facebooka. Jeśli nie zostaną złożone żadne żądania, token wygaśnie po około 60 dniach, a osoba będzie musiała ponownie przejść przez proces logowania, aby otrzymać nowy token.

O odświeżenie tokena:

Nawet długowieczne token dostępu ostatecznie wygaśnie. W dowolnym momencie możesz wygenerować nowy długotrwały token, wysyłając osobę z powrotem do przepływu logowania używanego przez aplikację internetową - pamiętaj, że ta osoba nie będzie musiała ponownie logować się, już autoryzowała twoją aplikację, więc natychmiast przekieruj z powrotem do aplikacji z przepływu logowania za pomocą odświeżonego tokenu - w jaki sposób osoba ta będzie się wyświetlać będzie się różnić w zależności od typu używanego logowania, na przykład jeśli korzystasz z zestawu JavaScript SDK, będzie to miało miejsce w w tle, jeśli korzystasz z przepływu po stronie serwera, przeglądarka szybko przekieruje Cię do okna logowania, a następnie automatycznie i natychmiast z powrotem do aplikacji.

Powiązane problemy