Nie wiem, jak przechowywać lub używać danych o stanie klienta (keychain in iOS również w Android), ale z perspektywy aplikacji internetowej nie trzeba nic robić. Nie musisz nic robić, bo jeśli możesz to nie jest bezpieczne. Po zalogowaniu serwer ustawi HTTP only cookie, który będzie dostępny przez kilka dni lub tygodni. W tym czasie żądanie with credentials na serwer jest zawsze uwierzytelniane przez przeglądarkę. Możesz poprosić o e-mail logowania lub cokolwiek z serwera. W celu dodatkowego zabezpieczenia serwer może zażądać XSRF token. W takim przypadku zapisz go w localStorage. Utrata tego żetonu oznacza niewiele.
Jest to najbezpieczniejszy sposób i jest również używany przez klientów mobilnych, w tym bankowość internetową za pośrednictwem WebView. Używanie przeglądarki do uwierzytelniania jest najbezpieczniejsze i najłatwiejsze, ponieważ istnieje wiele słabych punktów, takich jak przechowywanie danych uwierzytelniających, sprawdzanie poprawnych certyfikatów SSL, szyfrowanie itp. W przeglądarce internetowej wszystko jest obsługiwane przez przeglądarkę.
Jeśli są Państwo zainteresowani tym, jak te kody serwerów są, miałem wytłumaczenie z Appengine cross domain authentication server code.
Interesujące pytanie, oznacza to, że będziesz musiał przechowywać referencje użytkownika lokalnie, co nie jest bardzo bezpieczne. Zastanawiam się, czy istnieje jakiś bezpieczny sposób lub najlepsze praktyki, aby to osiągnąć. –
Po prostu coś do przemyślenia - jeśli sprawdzanie poświadczeń jest z definicji wykonywane na kliencie w javascript, byłoby trywialne, gdyby ktoś emulował/ominął uwierzytelnianie przez manipulowanie właściwościami js w aplikacji. Załóżmy na przykład, że dane po stronie klienta zostały zsynchronizowane z serwerem po powrocie do trybu online, może to spowodować problemy. – user888734