W nowej wersji Coyote, powiadomienia czy też wiadomości prywatne są przesyłane poprzez WebSockety. Dzięki temu powiadomienia będą w czasie rzeczywistym, a nie jak teraz - z opóźnieniem.
I tutaj pojawia się problem z uwierzytelnianiem użytkownika. Tuż po połączeniu z serwerem WebSocket, przesyłany jest token który ma uwierzytelnić danego, zalogowanego użytkownika. W tokenie zaszyfrowane jest ID użytkownika oraz timestamp. Token ważny jest godzinę. Wszystko działa dobrze, ale pojawił się problem. Załóżmy, że użytkownik ma długo otwartą kartę przeglądarka (ponad godzinę). Połączenie zostanie zerwane. Napisałem mechanizm który ponawia połączenie jednak po połączeniu ponownie zostaje przesłany token, który już wygasł. Tak więc połączenie nie zostanie nawiązane dopóki użytkownik nie odświeży strony (co wygeneruje ponownie aktualny token).
Czy macie jakiś pomysł aby rozwiązać ten problem? Być może wygasanie tego tokena po 1 godzinie jest zbyt gorliwe z mojej strony? Co myślicie?