Guides

Hvad er autentificering? Login, sessions og OAuth forklaret

Autentificering er, hvordan en app bekræfter, hvem en bruger er — typisk ved at tjekke noget, de kender (en adgangskode), noget, de har (en kode sendt til deres telefon eller e-mail), eller en identitet fra en anden betroet tjeneste (som "Log ind med Google"). Når en bruger er autentificeret, husker appen dem med en session eller et token, så de ikke skal logge ind på hver side. At afgøre, hvad den kendte bruger må gøre, er et separat trin, der kaldes autorisation.

Hvorfor det betyder noget, når du bygger med AI

At tilføje login er en af de mest almindelige anmodninger, folk stiller til en AI-builder, og en af de nemmeste at få subtilt galt. En loginside er nem at generere. Det svære er alt det omkring den:

  • Gemmes adgangskoderne sikkert?
  • Tjekker hver privat side og hvert API-endpoint faktisk, hvem der spørger?
  • Kan en logget ind kunde se en andens data ved at ændre et tal i URL'en?
  • Hvad sker der, når nogen glemmer deres adgangskode?

En app kan se helt sikker ud og stadig fejle på alle disse punkter. At forstå de bevægelige dele lader dig stille de rigtige spørgsmål og teste de rigtige ting.

En hverdagsanalogi

Tænk på at tjekke ind på et hotel.

Ved receptionen viser du ID. Det er autentificering: at bevise, hvem du er. Receptionisten giver dig så et nøglekort. Kortet er din session: resten af opholdet viser du ikke ID igen; du bruger kortet.

Kortet åbner dit værelse, fitnesscentret og elevatoren til din etage — men ikke andre gæsters værelser eller personalekontoret. Det er autorisation: hvad din identitet har lov til at få adgang til. Hvis du mister kortet, kan hotellet deaktivere det i receptionen (tilbagekalde en session). Når du checker ud, holder det op med at virke (logout eller udløb).

"Log ind med Google" er som et hotel, der accepterer et brev fra en betroet partner, der siger "dette er hvem de er", i stedet for selv at tjekke dit ID.

De vigtigste login-metoder

MetodeSådan virker denFordeleUlemper
E-mail + adgangskodeBrugeren vælger en adgangskode; appen gemmer en hash af denVelkendt, ingen ekstern afhængighedDu skal gemme hashes sikkert og håndtere nulstilling
Magisk link / engangskodeAppen sender et link eller en kode via e-mail, der logger brugeren indIngen adgangskoder at lække eller glemmeAfhænger af e-mail-levering; langsommere login
Social login (OAuth / OpenID Connect)Brugeren logger ind med Google, Apple, GitHub osv.Hurtigt for brugerne; du gemmer ingen adgangskodeOpsætning hos hver udbyder; brugere uden disse konti
Hostet login-udbyderEn tjeneste som Clerk, Auth0 eller Supabase Auth håndterer oprettelse, login og nulstillingMindre sikkerhedsarbejde for digMånedlig pris i stor skala; endnu en afhængighed
Multifaktor (MFA / 2FA)Et ekstra tjek efter det første, for eksempel en kode fra en authenticator-appMeget sværere at bryde ind iLidt mere besvær

Hvordan adgangskoder bør gemmes

En sikker app gemmer aldrig din faktiske adgangskode. I stedet gemmer den en hash: resultatet af en envejsfunktion, der omdanner adgangskoden til en fast streng. Når du logger ind, hasher appen det, du skrev, og sammenligner resultatet med den gemte hash.

To detaljer gør det sikkert:

  • Et salt — en tilfældig værdi, der tilføjes hver adgangskode før hashing, så to personer med samme adgangskode får forskellige hashes, og forudberegnede opslagstabeller er ubrugelige.
  • En langsom algoritme lavet til adgangskoder — såsom Argon2, bcrypt eller scrypt. Almindelige hashes som MD5 eller SHA-256 er alt for hurtige alene; angribere kan prøve milliarder af gæt.

Hashing er ikke det samme som kryptering. Krypterede data kan dekrypteres med en nøgle; en adgangskode-hash er designet til slet ikke at kunne vendes.

Sessions vs. tokens

Efter login skal appen genkende dig ved hver forespørgsel. Der er to almindelige tilgange.

Session (cookie)Token (f.eks. JWT)
Hvad browseren gemmerEt tilfældigt session-ID i en cookieEt signeret token med brugerinfo og udløbstid
Hvor login-status leverPå serveren, i en database eller et lagerI selve tokenet
Logge nogen ud alle stederLet: slet sessionen på serverenSværere: tokenet forbliver gyldigt, indtil det udløber, medmindre du holder en blokeringsliste
Typisk brugTraditionelle webappsAPI'er, mobilapps, tjenester der taler med hinanden

For cookies betyder tre indstillinger noget: HttpOnly (JavaScript på siden kan ikke læse cookien), Secure (sendes kun over HTTPS) og SameSite (begrænser afsendelse ved forespørgsler fra andre sites). At gemme tokens i browserens localStorage er almindeligt, men udsætter dem for ethvert script, der kører på siden.

OAuth og "Log ind med Google"

OAuth 2.0 er en standard for delegeret autorisation: den lader en app få begrænset adgang til din konto hos en anden tjeneste — for eksempel at læse din Google-kalender — uden nogensinde at se din Google-adgangskode. Du sendes til Google, godkender specifikke rettigheder (kaldet scopes), og Google giver appen et token til kun de rettigheder.

OAuth alene blev designet til at give adgang, ikke til at sige, hvem du er. OpenID Connect (OIDC) er et lag oven på OAuth 2.0, der tilføjer identitet, og det er det, "Log ind med Google" eller "Log ind med Apple" bruger. For at sætte det op registrerer du din app hos udbyderen og får et client ID og en client secret; hemmeligheden bliver på din server.

Et konkret eksempel: login til et kundeportal

Lad os sige, du bygger et portal, hvor et designbureaus kunder ser deres projekter og fakturaer.

  • Autentificering: kunder logger ind med e-mail og et magisk link, så der ingen adgangskoder er at administrere. Bureauets medarbejdere logger ind med Google Workspace-konti.
  • Roller: hver bruger har en rolle — client eller staff.
  • Autorisationsregler:
HandlingKundeMedarbejder
Se sit eget firmas projekterJaJa
Se andre firmaers projekterNejJa
Uploade en fil til et projektKun egne projekterJa
Markere en faktura som betaltNejJa
  • Hvor det håndhæves: på serveren, for hver forespørgsel. Serveren slår den indloggede bruger op og returnerer kun projekter, hvor project.company_id matcher brugerens firma. At skjule knappen "Marker betalt" er ikke nok — endpointet selv skal afvise.

Almindelige begreber forklaret

BegrebBetydning
Autentificering (AuthN)At bekræfte, hvem nogen er.
Autorisation (AuthZ)At afgøre, hvad de må gøre.
SessionAt appen husker, at du er logget ind, mellem forespørgsler.
CookieEn lille datamængde, browseren sender tilbage til siden ved hver forespørgsel.
JWTJSON Web Token: et signeret, kompakt token med oplysninger som bruger-ID og udløb.
Rolle / rettighedEtiketter som admin eller member, der afgør adgang.
MFA / 2FAKrav om et ekstra bevis, for eksempel en kode fra en authenticator-app.
SSOSingle sign-on: ét login (ofte en firmakonto) til mange apps.
401 vs. 403"Hvem er du?" (ikke autentificeret) vs. "Det må du ikke" (ikke autoriseret).

Almindelige fejl og misforståelser

  • At tjekke rettigheder kun i siden. Hvis browseren skjuler en knap, men API'et ikke tjekker, kan alle kalde API'et direkte.
  • At stole på ID'er i URL'en. /invoices/1042 skal tjekke, at faktura 1042 tilhører den indloggede bruger.
  • At lave sin egen kryptering. Brug velkendte biblioteker eller udbydere; lad ikke AI'en opfinde et hashing-skema.
  • Svag nulstilling af adgangskode. Nulstillingslinks skal kunne bruges én gang, udløbe hurtigt og ikke afsløre, om en e-mail har en konto.
  • At blande dit login med builderens. Din apps brugere er adskilt fra din konto hos værktøjet, du bygger med.
  • Ingen hastighedsbegrænsning på login. Uden den kan angribere prøve adgangskoder uendeligt.

Hvad du beder din AI-builder om

  • "Tilføj oprettelse og login med [et velkendt bibliotek eller en udbyder]. Skriv ikke egen adgangskode-hashing."
  • "Gem adgangskoder hashet med bcrypt eller Argon2."
  • "Brug HttpOnly- og Secure-cookies til sessionen."
  • "Tilføj roller: admin og member. List hvert endpoint, og hvilke roller der må kalde det."
  • "Håndhæv på serveren, at brugere kun kan læse og redigere deres egne poster. Vis mig derefter, hvordan du har tjekket det."
  • "Tilføj nulstilling af adgangskode med engangslinks, der udløber efter en time."
  • "Begræns antallet af loginforsøg."

Test derefter selv: opret to konti og prøv at få adgang til den ene brugers data, mens du er logget ind som den anden. Vores guide til at tilføje login og sikkerhedstjekliste går længere.

Autentificering i Mythex

Mythex tilbyder ikke et indbygget auth-produkt til din apps brugere; du vælger en tilgang — e-mail og adgangskode gemt i dit projekts database eller en hostet udbyders SDK — og beder agenten tilføje den. Udbyder-nøgler lægges i projekthemmeligheder, ikke i chatten. Dette er adskilt fra, hvordan du logger ind på Mythex selv. Docs-opskriften om tilføjelse af login til din app har en startprompt, du kan tilpasse, og hvad er en API forklarer, hvor de serverside-tjek ligger.

Spørgsmål

Hvad er forskellen på autentificering og autorisation?

Autentificering tjekker, hvem du er, for eksempel ved at verificere din adgangskode. Autorisation afgør, hvad du må gøre, når man kender dig, for eksempel om du må se admin-siden, eller redigere en andens booking. Apps har brug for begge dele.

Hvad er OAuth?

OAuth 2.0 er en standard, der lader en app få begrænset adgang til din konto hos en anden tjeneste, uden at se din adgangskode. "Log ind med Google" bruger OpenID Connect, et identitetslag bygget oven på OAuth 2.0, så appen får at vide, hvem du er, fra Google.

Skal min app gemme adgangskoder?

Aldrig i læsbar form. Hvis du bruger login med e-mail og adgangskode, skal adgangskoderne gemmes som salterede hashes, lavet med en langsom algoritme designet til adgangskoder, såsom Argon2 eller bcrypt. Mange apps undgår problemet ved at bruge en hostet login-udbyder, social login eller magiske e-mail-links.

Sessions eller tokens — hvad skal min app bruge?

Begge virker. En session gemmer login-status på serveren og giver browseren et tilfældigt ID i en cookie, som er nem at tilbagekalde. Et token, som en JWT, bærer signeret information i sig selv, hvilket passer til API'er og mobilklienter, men er sværere at annullere før udløb. For en typisk webapp er cookie-baserede sessions et sundt standardvalg.

Mythex · Pricing · Byg hvad som helst med AI · Skabeloner til websites og apps · Mythex sammenlignet · Ordliste for app-bygning med AI · Gratis værktøjer til app-bygning med AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)