Wpis z mikrobloga

#php #javascript #laravel

Mam aplikację w Laravelu. Wprawdzie jeszcze nie mam tego wdrożonego, ale chcę ograniczyć do wyłącznie jednego zalogowania na użytkownika (=logowanie na innym urządzeniu = usunięcie sesji z pierwszego urządzenia). To wydaje się proste.
Ale jak ogarnąć zabezpieczenie, żeby użytkownik mógł pracować wyłącznie na jednej zakładce?
  • 6
@husky83: nie robiłem czegoś takiego, ale na szybko wpadłem na takie rozwiązanie:
1. Przy każdym wejściu na stronę/podstronę generujesz unikalny hash i zapisujesz go gdzieś(najlepiej gdzieś w bazie oraz w zmiennej JS).
2. w JS co kilka sekund oraz przed kliknięciem(przekierowaniem) w link sprawdzasz czy hash w zmiennej jest taki sam jak w bazie, jeżeli nie to dajesz jakieś info bez możliwości kontynuowania działań na karcie.
@gustav: Myślałem o podobnym rozwiązaniu - przy wejściu na stronę generować hash, doklejać go do strony, a przy każdym kliku sprawdzać czy hash jest zgodny z ostatnio wygenerowanym. Ale zastanawiam się czy nie ma jakiś innych rozwiązań ;-)
@husky83: w tym wypadku chyba nie masz innej opcji jak wykorzystanie JSa. Bo przy samym backendzie nie da się tego zrobić w miarę rozsądnie.
Mógłbyś np. doklejać do każdego URLa jakiś kawałek hasha i sprawdzać go po przejściu na kolejny link i robić przekierowania(aby użytkownik nie kopiował linku z hashem), ale wtedy mnożysz route'y oraz takie rozwiązanie jest słabe przy otwieraniu linku w nowej karcie, wtedy stara karta nie da info