To pytanie przyszło mi do głowy po przeczytaniu tego posta: “Common REST Mistakes: Sessions are irrelevant”licencje i sesje relaksującego sposób
Jeśli sesje są rzeczywiście zniechęca do spokojnego aplikacji. Jak poradzisz sobie z licencjami w takiej aplikacji? Mam na myśli konkretnie model licencji współbieżnych, a nie licencje nazwane. tj. klient kupuje licencje X, co oznacza, że aplikacja może zezwalać na logowanie do X użytkowników jednocześnie. Oznacza to, że aplikacja musi posiadać stan dla bieżących zalogowanych użytkowników.
Wiem, że mogę utworzyć zasób zwany licencjami, który ustawi plik cookie lub wygeneruje unikalny identyfikator, a następnie klient będzie musiał wysłać go przy każdym żądaniu. Ale to jest tak samo jak tworzenie sesji, prawda?
Jeśli przyjmuję podejście bezpaństwowe i poprosimy klienta, aby utworzył token uwierzytelniania dla każdego żądania, w jaki sposób aplikacja będzie wiedzieć, kiedy konsumować i wydawać licencję dla tego klienta?
Czy istnieje alternatywa? konkretnie bardziej restrykcyjna alternatywa?
Kiedy mam skorzystać z licencji na wersję? aby umożliwić zalogowanie się innemu użytkownikowi. Nie chcę, aby licencja była zużywana tylko przez milisekundę, gdy żądanie jest przetwarzane na serwerze, ale przez cały czas, gdy użytkownik jest aktywny. – LiorH
Dlatego należy zachować stan. Sesja/licencja powinna zostać zniszczona, gdy użytkownik kliknie link wylogowania lub po przekroczeniu limitu czasu. (Które może być polem w tabeli bazy danych, jak znacznik czasu last_login, który zostanie zaktualizowany do bieżącego znacznika czasu dla prawidłowych żądań.) –
@Aram Verstegen, powiedziałeś, że dlatego powinien zapisać stan, ale jeśli uratuje stan, czy to nie narusza zasad REST? –