Sådan tilføjer du tofaktorautentificering til din app
For at tilføje tofaktorautentificering (2FA) til din app skal du lade brugerne forbinde en godkendelsesapp ved at scanne en QR-kode, bede om den sekscifrede kode, den viser, efter adgangskoden, og først oprette en fuld session på serveren, når koden er korrekt. Giv hver bruger engangs-gendannelseskoder, når de slår 2FA til, begræns hvor mange koder nogen kan gætte, og kræv adgangskoden plus en aktuel kode, før 2FA kan slås fra. Hvis du bruger en hostet auth-udbyder, skal du slå dens indbyggede multifaktor-mulighed til i stedet for at bygge din egen.
Denne guide gennemgår valgene, det præcise flow, prompts du kan give en AI-builder, og fejlene, der får 2FA til at se ud, som om den er der, men ikke gør noget. Hvis begrebet er nyt for dig, så start med hvad tofaktorautentificering er.
Før du starter: du skal have et fungerende login
2FA ligger oven på et eksisterende login. Du har brug for et af disse først:
- Dit eget login, med brugere og hashede adgangskoder gemt i din apps database.
- En hostet auth-udbyder, der håndterer brugerne for dig.
Hvis du ikke har nogen af dem endnu, så begynd med sådan tilføjer du login til din app. Resten af denne guide forudsætter, at et adgangskodetrin allerede virker.
Vælg din anden faktor
| Metode | Indsats for brugeren | Sikkerhed | Driftsomkostning | God standard? |
|---|---|---|---|---|
| Godkendelsesapp (TOTP) | Scan en QR-kode én gang, skriv en kode ved login | God; kan phishes, hvis en falsk side beder om koden | Gratis | Ja, til de fleste apps |
| Passkey eller sikkerhedsnøgle | Tryk eller brug fingeraftryk | Stærkest; modstandsdygtig over for phishing | Gratis | Ja, hvis dine brugere er trygge ved det |
| E-mailkode | Tjek indbakken ved login | Kun så stærk som e-mailkontoen | Omkostninger til afsendelse af e-mails | Kun som reserve |
| Sms-kode | Vent på en sms | Svagest; SIM-swapping og phishing | Gebyr pr. besked | Kun hvis brugerne ikke kan bruge en app |
TOTP står for time-based one-time password, standarden (RFC 6238), som godkendelsesapps bruger. Din server og brugerens telefon deler en hemmelighed; begge genererer den samme korte kode ud fra hemmeligheden og det aktuelle tidspunkt, typisk skiftende hvert 30. sekund. Der kræves ingen netværksforbindelse eller sms-udbyder.
Passkeys erstatter eller supplerer adgangskoder med en kryptografisk nøgle gemt på brugerens enhed. De er stærkere, men mere arbejde at bygge selv, så mange apps starter med TOTP og tilføjer passkeys senere, eller henter dem fra en auth-udbyder.
Byg det selv eller slå det til?
| Tilgang | Fordele | Ulemper |
|---|---|---|
| Hostet auth-udbyders MFA | Mindre kode; udbyderen vedligeholder sikkerhedsdetaljerne | Månedlig omkostning ved skala; du er afhængig af udbyderens muligheder |
| Din egen TOTP med et bibliotek | Fuld kontrol; intet gebyr pr. bruger | Du ejer kanttilfældene: låsninger, gendannelse, hemmelighedslagring |
Tjek din udbyders aktuelle dokumentation for, hvilke faktorer den understøtter, og på hvilke planer. Uanset hvad skal du aldrig selv skrive matematikken til kodegenerering; brug et bredt anvendt bibliotek.
Beslut politikken først
Besvar disse, før du skriver prompts, for de ændrer designet:
- Hvem skal bruge den? Valgfri for alle, påkrævet for administratorer og personale, eller påkrævet for alle. Krav for alle med administratormagt er almindeligt. Se rollebaseret adgangskontrol.
- Hvor ofte skal brugerne indtaste en kode igen? Ved hvert login, eller én gang pr. enhed i 30 dage ("husk denne enhed").
- Hvilke handlinger kræver et nyt tjek? Skift af e-mail, betalingsoplysninger eller at slå 2FA fra er gode kandidater. Det kaldes step-up-autentificering.
- Hvad er processen, hvis telefonen er væk? Gendannelseskoder, plus en manuel reserveløsning, du er villig til at køre.
Trin for trin: TOTP-2FA på dit eget login
1. Gem de rigtige felter
Hver bruger har brug for: om 2FA er slået til, TOTP-hemmeligheden (krypteret i hvile, ikke i klartekst), tidspunktet den blev slået til, og en liste over gendannelseskoder gemt hashet, ligesom adgangskoder. Tilføj et sted til at tælle mislykkede forsøg.
2. Tilmelding
- Brugeren åbner Indstillinger og klikker på Slå tofaktorautentificering til.
- Serveren genererer en ny hemmelighed og returnerer den som en QR-kode, plus tekstversionen til dem, der ikke kan scanne.
- Brugeren scanner den i en godkendelsesapp og skriver den aktuelle kode.
- Serveren tjekker koden. Kun hvis den er korrekt, gemmer den hemmeligheden og markerer 2FA som slået til.
- Appen viser 8–10 gendannelseskoder én gang og beder brugeren gemme dem.
Trin 4 er vigtigt: at slå 2FA til, før koden er bekræftet, låser alle ude, hvis deres scanning mislykkedes.
3. Login med et andet trin
- Brugeren indsender e-mail og adgangskode. Serveren tjekker dem.
- Hvis 2FA er slået til, opretter serveren ikke en fuld session. I stedet opretter den en kortvarig tilstand "venter på anden faktor".
- Appen viser kodeskærmen. Serveren tjekker koden og tillader et lille vindue for tidsdrift.
- Først nu udsteder serveren den rigtige session.
Hver beskyttet rute og API-endpoint skal afvise den ventende tilstand. En 2FA-skærm, der kun skjuler sider i browseren, kan omgås ved at kalde API'en direkte.
4. Grænser og advarsler
En seks-cifret kode har en million kombinationer, hvilket kan gættes uden grænser. Begræns forsøgene, lås det andet trin i en periode efter gentagne fejl, og send brugeren en e-mail, når det sker. Se rate limiting og sådan sender du e-mails fra din app.
5. Gendannelse og slå fra
- En gendannelseskode virker én gang og slettes derefter.
- At slå 2FA fra kræver adgangskoden og en aktuel kode eller gendannelseskode.
- At generere gendannelseskoder igen ugyldiggør det gamle sæt.
- Send brugeren en e-mail, når 2FA slås til eller fra.
Prompts til din AI-builder
Start med kernen i flowet:
Tilføj valgfri tofaktorautentificering med godkendelsesapps (TOTP) til vores eksisterende e-mail- og adgangskodelogin. Brug et velkendt TOTP-bibliotek, skriv ikke algoritmen selv. Vis i Indstillinger en QR-kode og tekst-hemmeligheden, og slå først 2FA til, når brugeren har indtastet en gyldig kode. Gem hemmeligheden krypteret, og vis den aldrig igen efter opsætning. Vis 10 engangs-gendannelseskoder én gang, og gem dem hashet.
Derefter håndhævelsen, hvor genereret kode oftest falder kort:
Håndhæv 2FA på serveren. Efter en korrekt adgangskode får brugere med 2FA slået til en kortvarig venter-tilstand, ikke en fuld session. Hver beskyttet side og API-rute skal afvise venter-tilstanden. Begræns kodeforsøg til 5, lås derefter det andet trin i 15 minutter, og send brugeren en e-mail.
Derefter politik:
Kræv 2FA for administratorkonti: en administrator uden 2FA sendes til opsætning og kan ikke nå dashboardet, før den er færdig. Kræv adgangskoden og en aktuel kode for at slå 2FA fra eller ændre kontoens e-mail. Send brugeren en e-mail, når 2FA slås til eller fra.
Til sidst, bed agenten forklare, hvad den har bygget:
List hver rute, der tjekker for et gennemført andet trin, hvor TOTP-hemmeligheden og gendannelseskoderne gemmes, og hvordan de er beskyttet.
Almindelige fejl
- Session udstedt efter adgangskoden. Den alvorligste fejl. Hvis den fulde session findes, før koden er tjekket, er 2FA kun pynt. Test ved kun at kalde en beskyttet API efter adgangskodetrinnet.
- Ingen grænse for forsøg. Ubegrænsede gæt gør koden brute-force-bar.
- Hemmeligheder eller gendannelseskoder i klartekst. Et databrud giver så alles anden faktor.
- Slå til før bekræftelse. Brugere der scannede forkert, låses ude ved næste login.
- Ingen gendannelsesvej. Hver tabt telefon bliver til en supportsag eller en tabt kunde.
- Nem fra-slåning. Hvis en stjålet session kan slå 2FA fra uden kode, er beskyttelsen væk.
- Koder i logs. Sørg for, at koder og hemmeligheder aldrig dukker op i serverlogs eller fejlmeddelelser.
- Kun tjek på login-siden. Nulstilling af adgangskode, "magisk link"-login og enhver social login skal også respektere 2FA, ellers bliver de en vej udenom.
Testtjekliste
- Tilmelding fuldføres først efter en gyldig kode
- Login med korrekt adgangskode, men uden kode, giver ingen adgang til beskyttede sider eller API'er
- En forkert kode afvises; gentagne forkerte koder udløser låsningen og en e-mail
- En kode fra for et par minutter siden afvises
- Hver gendannelseskode virker præcis én gang
- At slå 2FA fra kræver adgangskoden og en aktuel kode
- Nulstilling af adgangskode omgår ikke 2FA
- Administratorer uden 2FA kan ikke nå administratorsider (hvis påkrævet)
- Hemmeligheder og gendannelseskoder er krypteret eller hashet i databasen
- Ingen koder eller hemmeligheder vises i logs
Kør også den fulde sikkerhedstjekliste for AI-byggede apps før lancering.
Tilføj 2FA i Mythex
Mythex indeholder ikke et indbygget loginsystem til din apps slutbrugere, så 2FA er en del af den auth-tilgang, du vælger: dit eget e-mail- og adgangskodelogin med projektets database, eller en hostet udbyder med multifaktor-understøttelse. Du beskriver, hvad du vil have, i chatten med prompts som ovenfor, og eventuelle udbydernøgler lægges i projekthemmeligheder (via /secrets, projektindstillinger eller hemmelighedskortet agenten viser) — ikke i beskedfeltet. Opskriften Tilføj login til din app i dokumentationen har en startprompt, og Sikkerhed for apps du bygger dækker vanerne omkring nøgler og rettigheder. Når agenten er færdig, så test hvert punkt på tjeklisten i Preview, før du udgiver.
Spørgsmål
Hvad er den nemmeste måde at tilføje tofaktorautentificering til en app?
Hvis du bruger en hostet auth-udbyder, skal du slå dens indbyggede multifaktor-mulighed til; det kræver normalt mindst kode. Hvis du kører dit eget login, så tilføj godkendelseskoder (TOTP) med et velkendt bibliotek, plus gendannelseskoder og et server-side tjek.
Bør jeg bruge sms-koder til 2FA?
Sms er bedre end ingen anden faktor, men det er den svageste almindelige mulighed, fordi sms'er kan omdirigeres via SIM-swapping, og koder kan phishes. Tilbyd en godkendelsesapp som standard, og passkeys, hvis dine brugere er klar til dem.
Har jeg brug for en database for at tilføje 2FA?
Hvis du kører dit eget login, ja. Hver brugers 2FA-hemmelighed, om 2FA er slået til, og deres hashede gendannelseskoder skal gemmes et sted, din server kan tjekke. En hostet auth-udbyder gemmer det for dig.
Hvad sker der, hvis en bruger mister sin telefon?
De logger ind med en af de engangs-gendannelseskoder, du viste, da de slog 2FA til, og opsætter derefter 2FA igen på en ny enhed. Uden gendannelseskoder skal du have en manuel identitetskontrol, så beslut processen før lancering.