Direkt adatbázis kezelés elkerülése
2015-02-15T09:54:49+01:00
2015-02-16T15:19:03+01:00
2022-07-22T12:11:17+02:00
  • Próbálkozok még. Az előttem szóló hozzászólásából kiindulva még találtam dokumentációt, fórumtémákat. Köszönöm a segítséget :)
    Mutasd a teljes hozzászólást!
  • Két lehetőség közül az egyik, hogy kipróbálod mindazokat a cuccokat, amiket javaslatba már felírtak neked, és hátha meg tudsz maradni azok között a korlátok között, ahol azok elegendőek. A másik lehetőség megkerülni a problémát, amire vagy van lehetőség, vagy nincs.
    Mutasd a teljes hozzászólást!
  • Köszönöm az oldalt, elolvasom.
    Mutasd a teljes hozzászólást!
  • A REST API-ról én is olvastam, jelenleg ezt az implementációt találtam. C++-ban írnám meg.
    Mutasd a teljes hozzászólást!
  • A jelenlegi elképzelésem az, hogy induláskor a felhasználót bejelentkeztetjük. Ekkor a program csatlakozik a szolgáltatáshoz, elküldi az adatokat és ha a szerver mindent rendben talál, visszaküld egy ideiglenes azonosítót - aminek a lejárati idejét a szerver kezeli és minden bejelentkezésnél újat generál - a kliensalkalmazásnak. Innentől minden lekérdezéshez ami a szerver fele irányul hozzá lesz fűzve ez az azonosító, így azonosítódik a felhasználó, és ha joga van az adott lekérdezéshez, a szerver teljesíti azt, ha meg nincs akkor valami hibaüzenetet küld vissza.

    Úgy tűnik, hogy ez teljesen trendi, szerintem ne ijedj meg tőle. A legjobb mintát ezzel kapcsolatban az auth0-on találtam. Nodejs-el mutatja a működését, de egy sima git clone után működik a példa és lehet ellenőrizni a logikáját.
    A jwt (javascript web token) lényege, hogy az autentikáció után a sessionra vonatozó paramétereket becsomagolják egy tokenbe, amit a kliens elrak a local storage-be és utána minden kérésnél ezt is elküldi a http headerben. A token titka, hogy a tartalmát csak a szerver tudja írni és visszaolvasni, mert titkosítva vannak benne az adatok, a kliens nem tud semmit arról, hogy mit is küldözget. A token sértetlenségre és lejáratra vonatkozó adatokat is tartalmaz ezért ha ellopják, akkor csak időlegesen tudják használni. Mivel a kliensnél van a token és nem a szerver session-t használják perzisztenciára, ezért szerverek között is átjárható a dolog, így akár harmadik fél is végezheti az autentikációt, nem csak a saját szerver.

    A másik kulcsszó pedig a REST API, amit úgy tűnik, minden szerver oldali platform és nyelv támogat.
    Mutasd a teljes hozzászólást!
  • És akkor hogyan "szokás" ezt megoldani, ha az általam kitalált módszer nem jó?
    Mutasd a teljes hozzászólást!
  • Szerintem fail lesz.

    Az egyik bibi, hogy a felhasználóid jogköreit rendezni nagyon macerás. Sokkal nagyobb az a falat, mint amilyennek kinéz. Csak azt önmagában annyi kínszenvedés lesz üzemeltetni, hogy ott véget is fog érni a történet.

    A másik bibi, hogy előbb vagy utóbb bele fogsz futni az összetett adatok cache-elésének a szituációjába, amikor is a cache réteget elég rendesen kinyírod (folyamat menteni, egymást akadályozó tranzakciók). Cache réteget csak alkalmazás specifikusan szokás kidolgozni kizárólag user-end adat folyamatokhoz, nem per felhasználó alapon, és minden mást teljesen elfedni. Ha azt nem tudod megtenni (biztosítani kell a felhasználóknak low lvl turkálást is), falnak fogsz szaladni vele.
    Mutasd a teljes hozzászólást!
  • Sziasztok. Fejlesztek egy programot ami MySQL adatbázishoz csatlakozik, és adatokat kezel azon. Jelenleg a program direkt módon csatlakozik az adatbázishoz. Jelenleg nagyon korai fázisában van a fejlesztés. A lényeg az, hogy el akarom választani az alkalmazást az adatbázistól úgy, hogy beiktatok egy szolgáltatást közéjük. Az alkalmazás ezen a szolgáltatáson át fér hozzá az adatbázishoz. Ennek az lenne a lényege, hogy nem kell az adatbázis felhasználónevét, jelszavát minden kliensalkalmazással mellékelni, a kliensalkalmazás bejelentkezős lesz, egyedi jogokkal a felhasználók számára, amiket így biztonságosabban tudok kezelni a szerveren, s a kliensalkalmazás illetéktelen módisításával nem lehet megkerülni azokat.

    A jelenlegi elképzelésem az, hogy induláskor a felhasználót bejelentkeztetjük. Ekkor a program csatlakozik a szolgáltatáshoz, elküldi az adatokat és ha a szerver mindent rendben talál, visszaküld egy ideiglenes azonosítót - aminek a lejárati idejét a szerver kezeli  és minden bejelentkezésnél újat generál - a kliensalkalmazásnak. Innentől minden lekérdezéshez ami a szerver fele irányul hozzá lesz fűzve ez az azonosító, így azonosítódik a felhasználó, és ha joga van az adott lekérdezéshez, a szerver teljesíti azt, ha meg nincs akkor valami hibaüzenetet küld vissza.

    Az egész adatforgalom HTTPS-en keresztül fog zajlani.

    Csak nemrég kezdtem olvasgatni a témában. Idáig ezzel tudtam előrukkolni. A kérdésem az lenne, hogy szerintetek mennyire életképes a dolog. Mi(k)re kell még odafigyelnem? Köszönöm előre is.
    Mutasd a teljes hozzászólást!
abcd