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!
Czy kiedykolwiek znalazłeś tu coś przydatnego? – SJoshi