Aktywne Wpisy

Medokin99 +588
#motoryzacja #honda
Nawiązując do wpisu
https://wykop.pl/wpis/83961361/motoryzacja-honda-jezeli-mysleliscie-ze-ostatnio-m
Chciałem
Nawiązując do wpisu
https://wykop.pl/wpis/83961361/motoryzacja-honda-jezeli-mysleliscie-ze-ostatnio-m
Chciałem
źródło: IMG_8742
Pobierz
Misaka +271





Chciałbym się trochę podszkolić w pewnej rzeczy - aby zacząć robić bardziej modułowe aplikacje, a nie monolity. Zacząłbym od backendu. Czytałem trochę o architekturze mikroserwisów - wydaje się to ciekawę. Mógłbym np rozdzielić hipotetyczną aplikację dajmy na to - na 4 mniejsze serwisy: autoryzacja userów, produkty, zamówienia, płatności. I kilka pytań:
1) Jak wygląda sprawa autoryzacji? Np do mikroserwisu wysyłam żadanie z nazwą usera i hasłem - wtedy "loguje" mnie do aplikacji, ale dalej jak się komunikować? Do tej pory robiłem tak, że nadawany był unikalny token UUID i miałem abstrakcyjny kontroler w Javie z którego dziedziczyłem, który sprawdzał sobie zawsze w bazie danych, czy token jest poprawny i nie wygasł - minusem było oczywiście to, że trzeba było się odwoływać do bazy danych co chwila.
Słyszałem o tokenach JWT - jednak odradzają je jako mechanizm takiej "sesji". Więc w sumie po co ich używać? Tak to przekazałbym w nim dane typu: userID, username, userPermissions, expTime itd - wtedy wiem jakie user ma ID, jaką nazwę (gdyby było to potrzebne), jakie uprawnienia i kiedy token JWT wygasa. Jednak skoro odradzane są jako mechanizm sesji, to nie widzę chyba sensu w ich użyciu?
Mógłbym zamiast JWT wrócić do tego rozwiązania o którym pisałem - generuje sobie UUID w jakimś kontrolerze podczas logowania, i za każdym razem z innych serwisów odpytuje serwis autoryzacji sprawdzając poprawność tokena UUID. Tutaj można zastosować np cache, żeby zapamiętywało taki token na na przykład 5-10 minut - taka poprawa wydajności.
2. Skoro już jestesmy przy autoryzacji - w jaki sposób autoryzować zapytania między serwisami? Przesyłać jakiś nagłówek z kluczem? Czy może jakiś inny mechanizm, który dawałby radę? Może szyfrowanie RSA lub AES?
A może autoryzować je tokenem użytkownika? Czyli skoro serwis zamówień musi pobrać info z serwisu produktów, to może po prostu wysyłać token, który otrzymwał serwis zamówień od usera? I nim autoryzować zapytanie do serwisu produktów?
3. Gdzie mogę znaleźć jakieś materiały by coś sie nauczyć na temat budowy takich aplikacji które są mikroserwisami i jak to wszystko połączyć? Jakieś słowa kluczowe? Najlepiej Python, Java, a ostatecznie może być nawet PHP.
#programista15k #java #python #php #mikroserwisy #programowanie #webdev #serwery
@lukasj: masz tutaj coś w temacie
https://www.amazon.pl/Building-Microservices-Designing-Fine-Grained-Systems/dp/1492034029/ref=d_pd_sbs_sccl_1_1/262-7948762-2749501?pd_rd_w=aYoyk&content-id=amzn1.sym.f020c438-db6e-4c19-98d8-a3b4e66326a1&pf_rd_p=f020c438-db6e-4c19-98d8-a3b4e66326a1&pf_rd_r=E7E5FW5FGBKG34FV575J&pd_rd_wg=lNOEz&pd_rd_r=f8baef41-6ec0-4ad9-8647-a8af3eec260f&pd_rd_i=1492034029&psc=1