Velkommen til Autentisering og innlogging! Dette er leksjon 1 av 8. Du kan starte uten konto — fremgangen lagres mens du jobber, og du kan ta en pause når som helst.
HTTP husker ingenting
Hvorfor innlogging er nødvendig — og sesjoner mot tokens på fem minutter.
Velkommen til kurset om det mest brukte og mest misforståtte i webutvikling: innlogging. Vi bygger videre på Node.js og Express-kurset — du kjenner ruter, middleware og JSON. Nå skal du forstå hva som egentlig skjer når noen skriver et passord og trykker «Logg inn», steg for steg, uten rammeverk-magi.
Problemet: HTTP husker ingenting
HTTP — protokollen alt webbyggeri hviler på — er stateless: hver forespørsel er et komplett, uavhengig brev. Nettleseren sender metode, adresse og skjema, mottar svaret, og så er det over. Serveren kobler ikke forespørslene sammen av seg selv. To klikk fra samme person ser ut som to helt fremmede.
Forespørsel A: GET /handlekurv → 200 OKForespørsel B: POST /til-kassen … → 200 OK # HTTP tolker ingen sammenheng: hvert brev er komplett og alene.# «Samme bruker» finnes ikke i protokollen — den må appen legge til.Dette er ikke en svakhet, det er et designvalg — og grunnen til at nettet skalerer slik det gjør: en server kan dele arbeidet med tusen andre, for ingen av dem trenger å huske noe. Men du vil noe annet. Handlekurven skal følge med, medlemsinntaket skal vare, «min side» skal vite hvem du er. Hukommelsen må derfor bygges oppå protokollen, bevisst. Det er innlogging — alt sammen.
To strategier: sesjoner og tokens
Det finnes egentlig bare to måter å gi en stateless protokoll hukommelse på, og hele kurset ruller rundt dem:
- Sesjoner — tilstanden bor hos serveren. Du får en tilfeldig sesjons-id på en cookie, og serveren slår opp «hva denne id-en betyr» på hver forespørsel. Som en garderobeseddel: seddelen er verdiløs, kappen henger hos teateret.
- Tokens — tilstanden bor hos klienten, pakket inn i et dokument serveren har signert. Serveren trenger ikke huske noe; den bare kontrollerer signaturen. Som en laminert legitimasjon du bærer selv.
Begge løser samme problem — «hvem er du, igjen?» — med hver sin avveining: der tilstanden skal bo, og hvem som kan ta den tilbake. Nettsider i nettleseren ender som regel på sesjoner. API-er og apper ender ofte på tokens. Du skal forstå begge godt nok til å velge med viten, ikke med vanvare.
Kart over kurset
- Passord og hashing — hvorfor passord aldri ligger i klartekst, og hvordan de lagres i stedet (leksjon 2, med kursets eneste kjørbare øvelse).
- Sesjoner — cookie, sesjonslager, cookie-attributter og utlogging (leksjon 3).
- Tokens og JWT — det signerte dokumentet, utløp og bruksområder (leksjon 4).
- Innloggingsflyten i Express — login-rute, vokter-middleware og utlogging, steg for steg (leksjon 5).
- Vanlige innloggingsfeil — enumerering, timing, rate-limit og sesjonsfixasjon (leksjon 6).
- «Logg inn med …» — OAuth-flyten uten drama (leksjon 7).
- Sluttest — seks spørsmål over kurset (leksjon 8).
Tips
Før du starter
Husk vane fra websikkerhet-kurset: servervalidering er den eneste sikkerheten. Alt du ser i nettleseren — skjema, meldinger, gjemte felt — er vinduet mot brukeren, aldri veggen. Dette kurset handler om veggen: koden som kjører på serveren.
Prøv selv
Hvorfor husker ikke HTTP?
Trykk på utsagnene — hvilket er sant om hvorfor serveren glemmer deg?
Det finnes ikke feil her — trykk på alle tre hvis du vil.
Du kan nå
- forklare stateless HTTP — hvorfor serveren ikke kobler forespørsler sammen av seg selv
- navngi de to strategiene for hukommelse: sesjoner (tilstand hos serveren) og tokens (signert tilstand hos klienten)
- si hva kurset skal gi: forstå hver del av en innlogging, uten rammeverk-magi