Next.js 15 for fullstack-webapper · leksjon

Sesjonshåndtering og JWT-er

Forstå hvordan sesjoner håndteres, og hvordan JSON Web Tokens (JWT-er) brukes til sikker brukerautentisering.

Leksjon 2 av 411 trinn

Sesjonshåndtering og JWT-er er en gratis leksjon i Next.js 15 for fullstack-webapper på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Next.js 15 for fullstack-webapper, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Next.js 15 for fullstack-webapper inneholder totalt 4 leksjoner.

Hva er økter?

På nettet er en «session» en måte for en server å huske en bruker på gjennom flere forespørsler. Tenk på det som en samtale med korttidshukommelse.

Ettersom HTTP-forespørsler er tilstandsløse (hver forespørsel er uavhengig), bidrar økter til å bevare konteksten rundt hvem du er og hva du gjør.

Hvorfor trenger vi økter?

Se for deg at du logger inn i en nettbutikk. Uten en økt ville serveren glemme at du er logget inn hver gang du klikker på et nytt produkt eller legger en vare i handlekurven!

Økter knytter relaterte forespørsler fra samme bruker sammen, slik at du får en personlig og sammenhengende opplevelse i hele applikasjonen.

Tradisjonelle økter og informasjonskapsler

Tradisjonelt innebærer økter at serveren oppretter en unik «session ID» for en bruker etter innlogging. Denne ID-en lagres på serveren.

Deretter sender serveren denne session-ID-en til nettleseren, vanligvis i en informasjonskapsel. Nettleseren sender automatisk informasjonskapselen tilbake med hver påfølgende forespørsel, slik at serveren kan identifisere brukeren.

Møt JSON Web Tokens (JWT-er)

JSON Web Tokens (uttales «jot») er et moderne alternativ til tradisjonelle økter. De er selvstendige, kompakte og digitalt signerte informasjonsbiter.

I stedet for at serveren lagrer øktdata, lagrer JWT-er brukerspesifikk informasjon direkte i selve tokenet.

JWT-struktur: Header

En JWT består av tre deler, atskilt med punktum: Header, Payload og Signature.

Header inneholder vanligvis to felt:

  • alg: Algoritmen som brukes til å signere tokenet (for eksempel HMAC SHA256 eller RSA).
  • typ: Typen token, som vanligvis er «JWT».
{
  "alg": "HS256",
  "typ": "JWT"
}

JWT-struktur: Payload

Payload inneholder «claims» – utsagn om en entitet (for eksempel en bruker) og ekstra data. Claims kan være:

  • Registered Claims: Standardclaims som iss (utsteder), sub (subjekt) og exp (utløpstidspunkt).
  • Public Claims: Egendefinerte claims som du definerer, men registrerer i IANA-registeret for JWT.
  • Private Claims: Egendefinerte claims som partene blir enige om, og som ikke er offentlig registrert.
{
  "sub": "1234567890",
  "name": "Jane Doe",
  "admin": true,
  "iat": 1516239022,
  "exp": 1516242622
}

JWT-struktur: Signature

Signature opprettes ved å ta den kodede Header-delen, den kodede Payload-delen, en hemmelig nøkkel og algoritmen som er angitt i headeren, og deretter signere dem.

Denne signaturen er avgjørende! Den bekrefter at avsenderen av JWT-en er den den utgir seg for å være, og at meldingen ikke har blitt endret underveis.

Slik fungerer JWT-er i praksis

Her er et typisk forløp:

  1. Brukeren logger inn med legitimasjon.
  2. Serveren bekrefter legitimasjonen og oppretter en JWT.
  3. Serveren sender JWT-en tilbake til klienten.
  4. Klienten lagrer JWT-en (for eksempel i lokal lagring eller en informasjonskapsel).
  5. Ved påfølgende forespørsler sender klienten JWT-en (vanligvis i en Authorization-header).
  6. Serveren bekrefter JWT-signaturen og utløpstidspunktet før forespørselen behandles.

Fordeler og ulemper med JWT-er

Fordeler:

  • Tilstandsløs: Servere trenger ikke å lagre øktdata, noe som gir bedre skalerbarhet.
  • Desentralisert: Token kan bekreftes av enhver server som har den hemmelige nøkkelen.
  • Mobilvennlig: Enkel å bruke på tvers av ulike klienter (nett og mobilapper).

Vurderinger:

  • Lagring: Hvor token skal lagres sikkert på klientsiden.
  • Tilbakekalling: Det er vanskeligere å tilbakekalle et aktivt token før det utløper.
  • Størrelse: Kan være større enn en enkel session-ID.

Rask sjekk av JWT-er

Test forståelsen din av JSON Web Tokens!

Oppsummering av økter og JWT-er

Godt jobbet! I denne leksjonen har du lært om:

  • Formålet med nettøkter for å opprettholde brukerkontekst.
  • Hvordan tradisjonelle økter bruker lagring på serversiden og informasjonskapsler.
  • Strukturen (Header, Payload, Signature) og funksjonen til JSON Web Tokens (JWT-er).
  • Arbeidsflyten for bruk av JWT-er til autentisering.
  • Viktige fordeler og vurderinger når du velger JWT-er for applikasjonene dine.

Deretter skal vi se nærmere på hvordan du beskytter ruter og API-endepunkter ved hjelp av Next.js Middleware!

Gratis å komme i gang

Lær deg TypeScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Sesjonshåndtering og JWT-er» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Next.js 15 for fullstack-webapper, inkludert «Sesjonshåndtering og JWT-er», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Next.js 15 for fullstack-webapper inneholder totalt 4 leksjoner.

Hva lærer jeg i «Sesjonshåndtering og JWT-er»?

Forstå hvordan sesjoner håndteres, og hvordan JSON Web Tokens (JWT-er) brukes til sikker brukerautentisering. Du øver på Next.js 15 for fullstack-webapper med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Next.js 15 for fullstack-webapper?

Ingen tidligere erfaring er nødvendig. Next.js 15 for fullstack-webapper på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Sesjonshåndtering og JWT-er»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Next.js 15 for fullstack-webapper-leksjonen?

Ja. Alle Next.js 15 for fullstack-webapper-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Integrering av NextAuth.js
  2. Sesjonshåndtering og JWT-er
  3. Middleware og tilgangskontroll
  4. Rollebasert tilgangskontroll (RBAC)
← Tilbake til Next.js 15 for fullstack-webapper