Flaskista Flask+Reactiin

Liittynyt
06.11.2016
Viestejä
1 251
Liittynyt
07.01.2021
Viestejä
392
Voisiko joku vinkata, miten tuollaista etusivua kannattaisi lähteä kehittelemään? Alkaa olla käyttäjä-UI:lla kaikki olennaiset tehty (tilastosivu, muutoshistoria ja FAQ taitaa olla ainoat puuttuvat), joten kai tuohon etusivuun on seuraavaksi pureuduttuva.

Kannattaako tuo kuva ympätä normikuvana vai vai tausta-? Minulla oli joku sivu, joka laski kuvan parametrit niin että se näytti tuolta, mutta tietenkään en jostain syystä laittanut sivua talteen.

Muuten ajattelisin että tuo olisi ihan gridi, jossa tuo kuva vie leveydestä riippuen sopivan osan ruudusta, mutta tuo kyllä hajoaa kun mennään kännykkäleveyksiin. Silloin ei mahdu kuin vasemmanpuoleinen sisältö näkyviin tai tulee aivan liian kapea sarake. Mikä noissa on käytäntö, jätetäänkö koko kuva pois?
 
Liittynyt
07.01.2021
Viestejä
392
Saako muuten VSC:ssä jotenkin toimimaan outlineä Reactin koodin kanssa? Muilla kielillä toimii, mutta tsx-fileiden kohdalla ainakin näyttää vain tyhjää. Enkä löytänyt googlailulla mitään apuja.
 
Liittynyt
07.01.2021
Viestejä
392
Authorization-homma osoittautuikin yllättävän mutkikkaaksi. Vanhassa Flask-sovelluksessa framework hoiti käytänössä hommat, kunhan lisäsin haluttuihin routeihin @login_required-dekoraattorin.

JWT-tokenit näyttäisivät olevan paras ratkaisu ja muuten tämän koodailinkin mutta ongelmaksi tuli logout. Kun käytttää näitä cookieina, niin selain osaa hoitaa client-pään automaattisesti. Mutta invalidointi ei olekaan triviaalia. Kaikesta päätellen tähän on kaksi tapaa: joko luotetaan TTL:ään, eli cookie on sitten voimassa vaikka vuorokauden eikä mitään logoutia ole, tai sitten bäkkärissä on blacklist, johon token lisätään logoutissa.

Tavallaan ymmärrän blacklistin, mutta onkohan tuossa muuta kuin ideologiset syyt miksei hommaa voi tehdä sessio-pohjaisesti? Toisin sanoen tallennetaan ne voimassaolevat tokenit mieluummin kantaan. Blacklistihän kasvaa kasvamistaan, ellei listaa välillä tyhjennä. Whitelist taas pysyy koko ajan pienenä.

flask-jwt-extended -paketissa esimerkiksi on tuon blacklistin-tuki.
 
Liittynyt
16.11.2020
Viestejä
1 431
Palstalla on kyllä lukuisia kokeneempia web-devaajia, ite oon enemmän tämmönen backend- / jokapaikanhöylä, mutta kevyemmän harrastusprojektin tapauksessa minä varmaan vaan poistaisin tokenin clientista ja antaisin (järkevän mittaisen) TTL:n tehdä tehtävänsä palvelimella. Tota blacklistia ei tekis mieli lähteä implementoimaan.

Täältä vois saada kanssa jotain ajatuksia: What Are Refresh Tokens and How to Use Them Securely
 
Liittynyt
07.01.2021
Viestejä
392
Lukemani perusteella jos se tokeni on cookiessa niin clientti ei voi sitä poistaa. Toki jos välitän sen muuten niin sitten voin, mutta se tarkoittaa sitten sitä, että joudun clientissä käsittelemään tokenin itse. Cookiet hoitaa selain.
 
Liittynyt
16.11.2020
Viestejä
1 431
Joo, tarvis varmaan ekana kirkastaa se, haluaako autentikoinnin hoitaa tilattomasti, käyttää palvelinpuolen sessioita vai miten. Ratkaisut tokenin välitykseen yms. sen mukaan.

Minä oon tosiaan harrastanu kotona vaan hyvin kevyttä React / Node tai Python koodailua. Selaimessa token on laitettu vaan localstorageen ja logoutissa otettu sieltä veks. Palvelin voi asettaa tokenille ekspiroitumisajan.

Jos tarvis tehdä jotain professionaalimpaa, niin itellä vaihtuis bäkkäri Javaan ja Spring Securityyn. Sinne saa pultattua mukaan aika pitkälti sellaisen autentikaatioflown, mitä sattuu tarvitsemaan.
 
Liittynyt
07.01.2021
Viestejä
392
Jipppikaijee. Nyt tuo autentikointi hajosi syystä X. Tokeni kyllä välitetään clientille, mutta jostain syystä ilmeisesti client ei palauta oikeaa tokenia. Kai. Mistäpä pirusta tuonkaan tietää, kun serverin päässä en saa breikkaamaan mihinkään checkiin, palauttaa vaan 401.

Täytynee sitten alkaa käsin käsittelemään tuo tokeni ja unohtaa keksit.
 
Liittynyt
07.01.2021
Viestejä
392
Mitkähän apinat näitä komponentteja mahtaa tehdä?

React Routerissa oli sitten jostain syystä vaihdettu useHistory useNavigateksi v6:ssa. Nähdäkseni toiminta ei ei muuttunut mitenkään. Eli kaikki tuota käyttäneet softat meni rikki, ja netti on nyt täynnä ohjeita, jotka eivät enää päde. Saahan siinä ihmetellä kun edes maaliskuussa tehty ohje redirectistä ei enää toiminut.
 
Liittynyt
17.10.2016
Viestejä
10 302
Mitkähän apinat näitä komponentteja mahtaa tehdä?

React Routerissa oli sitten jostain syystä vaihdettu useHistory useNavigateksi v6:ssa. Nähdäkseni toiminta ei ei muuttunut mitenkään. Eli kaikki tuota käyttäneet softat meni rikki, ja netti on nyt täynnä ohjeita, jotka eivät enää päde. Saahan siinä ihmetellä kun edes maaliskuussa tehty ohje redirectistä ei enää toiminut.
Ainoa apina on se devaaja, joka päivittää paketin, jonka major-versio muuttuu, eikä tutustu muutoksiin. Tässä ohjeet:

 
Liittynyt
07.01.2021
Viestejä
392
Kyllä ne on yksiä v*tun apinoita, jotka rikkovat huvikseen rajapintoja. Vuosia tästä eteenpäin kun guuglaa tuohon liittyviä juttuja, tulee hitosti vääriä osumia. Noissa ohjeissa näköjään kun harvemmin vielä kerrotaan mihin versioon neuvot liittyvät.

Tässä on vielä se naurettavuus, että tuossa lähinnä pitää vaihtaa nimiä. Siis logiikka ei ole muuttunut tjsp, mikä oikeasti pakottaisi tähän. Olisi siis joko voitu jättää vanha toteutus useHistory():stä paikalleen deprecoituna tai sitten kirjoitettu vaan useHistory() uusiksi. Sama juttu tuon Switchin kanssa, aivan hyvin olisi voitu jättää Switch aliakseksi Routelle.

Olen kymmeniä jos en satoja rajapintoja nähnyt uran aikana ja tällaiset muutokset, joissa rikotaan taaksepäin yhteensopivuus vaikka ei ole oikesti pakko on merkki siitä, että koodarit ei paljon muista välitä. Joku Microsoft pystyi pitämään vanhat API:t taaksenpäinyhteensopivina jostain 3.1:sta Win8:iin ja sitten päättivät vetää homman uusiksi kymppiin. Joten kyllä tällaisen pienen komponentin kohdallakin pitäisi onnistua. Itselläkään ei ole tainnut tulla ikinä vastaan tilannetta, että joku rajapinta olisi ollut pakko rikkoa. Kyllä niihin on aina konstit löytyneet.
 
Liittynyt
07.01.2021
Viestejä
392
Ja muuten, miten nuo muutosdokumentit auttavat jos lähtee suoraan tekemään v6:lle?
 
Liittynyt
17.10.2016
Viestejä
10 302
Kyllä ne on yksiä v*tun apinoita, jotka rikkovat huvikseen rajapintoja.
Käsittämätön ylimielinen asenne. Lue ne dokumentaatiot:

We recommend waiting for the backwards compatibility package to be released before upgrading apps that have more than a few routes.
Yhä edelleen se apina on devaaja, joka päivittää lukematta dokumentaatiota ja release noteseja.
 
Liittynyt
07.01.2021
Viestejä
392
Ylimielisyyttä on nimenomaan rikkoa taaksepäin yhteensopivuus noin vain ja teettää käyttäjillä turhaa työtä.

Olen muuten tuon dokumentin lukenut joskus kuukausia sitten.

Mutta joo, ehkä minä olen sitten sitä porukkaa, jolla on ihan riittävästi tekemistä ilman että pitää keksiä tällaisia lisähommia muille koodaajille. Ehkä nuoremmilla koodareilla on aikaa tunkata jokaisen versiopäivityksen jälkeen jokaisen komponentin rikotut rajapinnat kohdalleen.
 
Liittynyt
17.10.2016
Viestejä
10 302
ehkä minä olen sitten sitä porukkaa, jolla on ihan riittävästi tekemistä ilman että pitää keksiä tällaisia lisähommia muille koodaajille
Ei tule mitään lisähommaa yhtään kenellekään kun et silmät sidottuna päivitä niitä riippuvuuksia :facepalm: Tee päivitys 5->6 vasta kun olet valmis lukemaan dokumentaation ja migraatio-ohjeet, kun tarvitset 6:n ominaisuuksia ja kun sulla on aikaa tehdä se migraatio. Jos nämä kaikki eivät täyty, niin pysyttele 5:ssä.
 
Viimeksi muokattu:
Liittynyt
07.01.2021
Viestejä
392
Eli siis sinulla _on_ projekteissa aikaa puuhailla kaikenlaista ylimääräistä, kuten päivitellä funktioiden nimiä? Jossain vaiheessa kun tahtoo olla vähän pakko tehdä päivityksiä. Tuollaiset muutokset lisäävät faktuaalisesti työmäärää.

Mikään ei estänyt jättämästä sitä vanhaa interfacea vaikka "deprecated"-leimalla tuonne.

Ja edelleen, kun etsin ratkaisua vaikka siihen, että miten tässä nyt redirektointi tehdään, niin hakukone ei todellakaan tarjoa hakutulosten kärjessä ohjeita migraation tekemiseen vaan lähinnä ohjeita miten homma tehdään v5:ssä. Mutta tietenkään nuo ohjeet yleensä kerro versiosta mitään, ja varsinkaan niitä ei koskaan jälkikäteen päivitetä, että tämä muuten ei enää päde.

Mutta tämä tästä. Jos joku on tosiaan sitä mieltä, että rajapintojen summittainen rikkominen on ok, niin siinä on niin iso railo minun käsitykseeni hyvistä ohjelmointikäytännöistä, että mitään yhteistä pohjaa on mahdoton löytää.
 
Liittynyt
17.10.2016
Viestejä
10 302
Liittynyt
07.01.2021
Viestejä
392
Mitä muuta tuo sitten on? Poistetaan laajasti käytetty ominaisuus. Mikä tuohon oli tässä vaiheessa syynä?

Ja sinun kykenemättömyytesi lukea, mitä kirjoitan on kyllä aika huikeaa kun puhun muustakin kuin päivittämisestä, mutta takerrut jatkuvasti siihen.
 
Liittynyt
07.01.2021
Viestejä
392
Jaahas, saahan sitä kuvitella, että hommat menisi jotenkin helposti. Muutin clientiä niin, että se lukee loginin vastausviestistä tokenit ja API-kutsuissa sitten lisää headeriin. Sain tuon toimimaan kun lisäsin flask_jwt_extended:n konffeihin, että etsii tokenia paitsi cookieista myös headerista.

No tietysti Postmanin testit sitten hajosivat, vaikka tuon komponentin speksien perusteella minkään ei olisi pitänyt muuttua. Ja nyt olen tätä tunkatessa ilmeisesti saanut rikottua jotain muutakin, koska vaikka olen palauttanut bäkkärin alkuperäiseen asentoon, niin silti Postman kiukuttelee. Vaikuttaisi vähän siltä, että nuo cookiet on nyt jotenkin sekaisin, mutta sitäpä sopiikin ihmetellä että miten. Mutta tuo tokeni, jonka luen näyttää erilaiselta. Ihan kuin jostain syystä Postman olisi alkanut automaattisesti purkamaan koodaus tai jostain syystä bäkkäri päätti olla enää tekemättä sitä. Postmanista kuitenkin deletoinut kaikki vanhat cookiet ja muuttujat.

Olisihan sitä itse sovellustakin voinut kehittää...
 
Liittynyt
07.01.2021
Viestejä
392
Autentikaatiohomma ratkesi sillä, että potkin keksipurkin nurin. Nyt autentikaatiotokeni menee headerissä sekä sovelluksen että Postmanin kanssa. Ja nimenomaan piti flask_jwt_extended konffata niin, että se ei etsi keksipurkista noita tokeneita.
 
Liittynyt
06.11.2016
Viestejä
1 251
Autentikaatiohomma ratkesi sillä, että potkin keksipurkin nurin. Nyt autentikaatiotokeni menee headerissä sekä sovelluksen että Postmanin kanssa. Ja nimenomaan piti flask_jwt_extended konffata niin, että se ei etsi keksipurkista noita tokeneita.
Olikos tää projekti githubissa tms?
 
Liittynyt
07.01.2021
Viestejä
392
On, mutta nuo muutokset menee vasta kun saan tuon homman valmiiksi. Koko autentikaatiohomma tuli ajankohtaiseksi kun aloin ensimmäisiä ylläpito-ominaisuuksia tekemään.

Mutta siis:
Bäkkärissä on koko nykyinen sivusto frontteineen, joten siellä on valtaosa sellaista, joka pitää jossain vaiheessa siivota pois. REST on tiedostoissa api.py, impl.py ja model.py sekä kunhan saan muutokset tuonne, api_jwt.py app-kansiossa. Fronttiinin on jo kaikenlaista refaktoroitavaa löytynyt, kunhan olisi aikaa.
 
Toggle Sidebar

Statistiikka

Viestiketjut
178 759
Viestejä
3 291 005
Jäsenet
59 181
Uusin jäsen
Raul98

Hinta.fi

Ylös Bottom