![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 77 Dołączył: 10.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam
Niejako nie ma odpowiedniejszego działu na forum, to pytam tutaj. Sprawa ma się następująco, mam architekturę systemu rozproszoną na kilka mniejszych micro-service, w praktyce jest to SSO, REST-API, kilka frontów na ReactJS, front na SF2, oraz (w planach) Socket.IO do serwowania treści real-time. Moje pytanie opiera się o kwestie uprawnień dołączania/subskrybowania kanałów w Socket, mianowicie chciałbym aby możliwość subskrybcji na kanał x mieli tylko odpowiedni użytkownicy posiadający określone uprawnienie(a) (zostawienie tej kwestii samemu frontendowi to nie najlepszy pomysł), chociaż są też kanały "publiczne", czyli takie, które pozwalają na subskrybję przez każdego. W praktyce, każdy zalogowany użytkownik ma token i na jego podstawie jestem w stanie wyciągnąć to co jest mi potrzebne. Nie wiem jak się to w praktyce robi, tj. podpisuje się użytkownika tym samym tokenem (chociażby dostępu do API), generuje się nowe? Grunt to to, żeby kanały restrykcyjne były dostępne tylko dla odpowiednich osób, a samo sprawdzenie uprawnień musi wyglądać tak, że Socket pyta się API o to czy token "abc" ma dostęp do subskrybcji. Dzięki i pozdrawiam ---BTW Moja koncepcja opierała się o sprawdzanie tokenu (jeżeli istnieje) otrzymanego przez API, nie interesuje mnie koncepcja oparta o Cookies Ten post edytował kpt_lucek 4.09.2016, 02:36:52 -------------------- Cytat There is a Bundle for that Lukas Kahwe Smith - October 31th, 2014 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Taki token JWT może być wygenerowany wiele razy przy użyciu tego samego klucza, dlatego że nie sprawdzany tam jest tylko klucz, ale cała "integralność" danego tokenu. Więc nawet jeżeli ktoś będzie próbował coś sobie dopisać, to sume kontrolą szlak trafi.
Przesyłaj jako query string do socket.io ten token a w nim dane jakie potrzebujesz. Po stronie serwera najpierw sprawdzaj poprawność tokenu, dopiero później rób join'a do odpowiedniego roomu. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 13:11 |