Sesjonshåndtering og JWT-er
Forstå hvordan sesjoner håndteres, og hvordan JSON Web Tokens (JWT-er) brukes til sikker brukerautentisering.
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) ogexp(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:
- Brukeren logger inn med legitimasjon.
- Serveren bekrefter legitimasjonen og oppretter en JWT.
- Serveren sender JWT-en tilbake til klienten.
- Klienten lagrer JWT-en (for eksempel i lokal lagring eller en informasjonskapsel).
- Ved påfølgende forespørsler sender klienten JWT-en (vanligvis i en
Authorization-header). - 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!
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
- Integrering av NextAuth.js
- Sesjonshåndtering og JWT-er
- Middleware og tilgangskontroll
- Rollebasert tilgangskontroll (RBAC)