2016-07-17 12 views
5

Jakie są sposoby powiadamiania użytkownika o wygasającej sesji w aplikacji React/Redux?Sposób ostrzegania o zakończeniu ważności sesji (JWT) w React/Redux

Serwer uwierzytelnia użytkownika za pomocą tokena JWT, a React naprawdę nie wie o istnieniu takiego tokena, przeglądarka obsługuje go automatycznie. W przypadku pobierania i wysyłania Redux ustawia dane lub błąd w stanie.

Czy jest typowy sposób pasywnego sprawdzania odpowiedzi podczas próby uzyskania dostępu do punktu końcowego interfejsu API, użycia pola wygasania w celu ustawienia limitu czasu po stronie klienta, aktywnego zapewnienia ważności sesji lub innej techniki? Jestem szczególnie zaniepokojony niezapisanymi zmianami wprowadzanymi przez użytkowników i chciałbym poinformować użytkownika o zakończeniu sesji tak szybko, jak to możliwe.

Odpowiedz

3

Moje obecne podejście do przechowywania JWT w localStorage, gdy aplikacja uruchamia, wczytuję token, próbuje załadować danych użytkownika z tokenem, jeśli to się nie powiedzie, po prostu przekierować do/login

Następnie Używam jwt tylko w module API, a nie w sklepie.

Mój moduł Api wie na podstawie wniosków, gdy w użyciu tokena, a kiedy nie

Jeśli moduł API rozpoznaje uwierzytelnianie nie powiodło się, ale również usuwa żeton z localStorage .. więc następnym razem nie może być załadowany .

Mój moduł api, który również jest oddzielony od redux, wie kiedy używać jwt, a kiedy nie.

do tej pracy bardziej abstrakcyjne Utworzyłem middleware, który reaguje na każde działanie, jeżeli ładunek jest error a wartość Not Authenticated

jest to błąd ja trowing w module API, jeśli odpowiedź serwera nie powiodła się z powodu auth. actionCreator po prostu wywołuje błąd w catch, a oprogramowanie pośredniczące reaguje na niego.

Tak więc od Ciebie zależy, jak to zrobić, cały kod, o którym mówię, to ~ 100 LOC lub coś takiego ... tylko niektóre metody, które obsługują te rzeczy.

+1

Wiele osób, jak sądzę, używa tego samego mechanizmu pośredniego dla auth, może pomóc, jeśli pokazał, jak wygląda twój. – Himmel

Powiązane problemy