View Single Post
det finnes mange gode måter å løse dette problemet på - litt avhengig av hva du trenger av funksjonalitet.
Trenger du å kunne lage flere brukere? I så fall trenger du nok en database. Om du egentlig bare trenger en passordbeskyttet side så blir det overkill. Da er det nok enklere å bare hardkode det.

Viktigste er å huske på at du aldri burde lagre passord i klartekst noen plass. Hverken hardkodet i koden eller i databasen. ALLTID bruk en hashing-funksjon . Når du skal sjekke om passordert er riktig bare kjører du inputen fra brukeren gjennom samme hashing-funksjon og sammenligner returverdien med det hashede passordet. Veldig mange biblioteker har ferdige funksjoner for dette. F.eks. kan du gjøre detm ed bcrypt i flask:

Kode

pw_hash = bcrypt.generate_password_hash('hunter2') # returns the hash of the password
bcrypt.check_password_hash(pw_hash, 'hunter2') # returns True
- MariaDB er en grei database. Det går fint å bruke den. SQLAlchamy er det opp til det om du ønsker bruke eller ikke. Selv likte jeg det ikke - mens andre synes det er kjempe bra. Spørs litt hvordan man liker å håndtere databaser.
- JWT er veldig populært for tiden, men som NIne sier, vil jeg anbefale å heller se på sesjoner. Det er mer enn godt nok til ditt bruk.

Jeg ville tatt det stegvis. Start med å lage en sesjonsbasert innlogging hvor passordet er hardkodet:
- Har hash passordet du ønsker og lagre hashen i en variabel i appen
- Når brukeren logger inn sammenlign mot hashen
- Hvis passordet er gyldig: Generer en ny sesjonsID (bruk gjerne en hash her og, så den ikke kan gjettes)
- Lagre hashen i minnet (f.eks. i en liste eller et map). På sikt (når du får skal støtte flere brukere) vil du også lagre info om hvilken bruker denne sesjonsIDen er tilknyttet.
- Returner HTTP-kallet med en header eller cookie (helst header av sikkerhetshensyn) som f.eks. X-SESSION-ID: [GENERERT_SESSION_ID]
- Alle fremtidige kall fra frontenden må da sende ved denne på kallene sine
- Backenden sjekker at SESSION-ID er gyldig på alle kall som skal være "beskyttet"