Så lägger du till inloggning i din app: lösenord, magiska länkar, Google och roller
För att lägga till inloggning i en app väljer du en metod — e-post och lösenord, magiska länkar (en engångsinloggningslänk som skickas via e-post) eller “Logga in med Google” — och implementerar den med ett beprövat autentiseringsbibliotek eller en hostad leverantör i stället för från början. Bestäm sedan vad varje typ av användare får göra (roller), och tillämpa det på servern för varje sida och varje API-förfrågan. Sessioner ska använda säkra cookies, gå ut och avslutas ordentligt vid utloggning.
Den här guiden går igenom varje val och de detaljer som skiljer en fungerande inloggning från en säker. För koncepten bakom den, se vad är autentisering.
Bestäm först: behöver du inloggning alls?
Inloggning ger friktion och ansvar. Du behöver den när:
- Användare har privat data (sina bokningar, dokument, fakturor)
- Användare kan ändra saker som andra kommer att se
- Du tar betalt för åtkomst
- Olika personer behöver olika behörigheter (ägare kontra personal kontra kund)
Du behöver kanske inte det för en marknadsföringswebbplats, en offentlig katalog eller ett formulär som bara skickar dig ett e-postmeddelande. En väntelista behöver inga konton; ett e-postfält räcker.
De fyra vanliga inloggningsmetoderna
| Metod | Så fungerar den | Fördelar | Nackdelar |
|---|---|---|---|
| E-post och lösenord | Användaren skapar ett lösenord; du lagrar en hash av det | Bekant, fungerar utan att skicka e-post varje gång | Lösenordsåterställningar, återanvändning, läckor; du måste lagra lösenord säkert |
| Magisk länk | Användaren anger e-post och klickar på en länk du skickar | Inga lösenord att lagra eller glömma | Beror på e-postleverans; långsammare att logga in |
| Engångskod | Användaren anger e-post och skriver en sexsiffrig kod | Fungerar när länkar öppnas i fel webbläsare | Samma beroende av e-post |
| Sociala konton / OAuth (Google, Apple, GitHub, Microsoft) | En annan leverantör bekräftar vem användaren är | Snabbast för användare; inget lösenord för dig att lagra | Användarna behöver det kontot; konfiguration hos leverantören |
Många appar kombinerar två: Google-inloggning plus magiska e-postlänkar är en populär kombination som täcker de flesta utan att lagra några lösenord.
E-post och lösenord
Om du erbjuder lösenord är dessa icke förhandlingsbara:
- Hasha lösenord med en långsam lösenordshashalgoritm. OWASP:s vägledning för lösenordslagring rekommenderar Argon2id, med scrypt, bcrypt eller PBKDF2 som alternativ. Lagra aldrig lösenord i klartext eller med en snabb allmän hash.
- Lösenordsåterställningar använder en slumpmässig, engångslänk som går ut, skickad till den verifierade e-postadressen.
- Avslöja inte vilka e-postadresser som har konton. “Om den e-postadressen är registrerad har vi skickat en återställningslänk” är bättre än “Inget konto hittades”.
- Begränsa antalet försök för inloggning och återställning för att bromsa lösenordsgissning.
- Tillåt långa lösenord och lösenordshanterare; hoppa över regler som tvingar fram konstiga teckenkombinationer.
Magiska länkar och engångskoder
En magisk länk är en inloggningslänk som skickas till användaren via e-post. Att klicka på den loggar in dem. En engångskod är samma idé, men inskriven i stället för klickad.
- Länkar och koder går ut snabbt och fungerar bara en gång.
- Länken ska logga in användaren på enheten där den klickades, och token får inte stanna i loggar eller analysverktyg.
- Du behöver pålitlig e-postutskick — se hur du skickar e-post från din app. Testa med Gmail och Outlook, och kontrollera skräppostmapparna.
Logga in med Google (och andra OAuth-leverantörer)
“Logga in med Google” använder OAuth och OpenID Connect: Google bekräftar vem användaren är och berättar för din app deras e-post och namn. Installationen sker, från och med september 2026, i avsnittet Google Auth Platform i Google Cloud Console:
- Skapa eller välj ett projekt, och fyll i sidan Varumärke — vad användarna ser på samtyckesskärmen (appnamn, supportadress, logotyp).
- På sidan Klienter skapar du en klient av typen “Webbapplikation”.
- Lägg till dina auktoriserade JavaScript-ursprung och omdirigerings-URI:er — de exakta adresserna din app körs på och dit Google skickar tillbaka användarna efter inloggning.
- Lagra klient-ID och klienthemlighet i din apps hemligheter.
Saker som ofta går fel, enligt Googles OAuth-dokumentation:
redirect_uri_mismatch: omdirigeringsadressen måste matcha exakt, inklusivehttpmothttps, versaler och ett eventuellt avslutande snedstreck. Lägg till en för din förhandsvisningsadress och en för din live-domän.- HTTPS krävs: omdirigerings-URI:er måste använda HTTPS, utom
localhostunder utveckling. - Parametern
statebör kontrolleras vid återkomst för att skydda mot cross-site request forgery. Bra bibliotek gör detta åt dig.
Om du bara begär grundläggande inloggningsuppgifter (namn, e-post, profil) säger Google att appverifiering inte är obligatorisk. Att begära åtkomst till användares Gmail, Drive eller Kalender är något annat och kräver verifiering.
Bygg själv eller använd en leverantör?
| Ansats | Exempel | När det passar |
|---|---|---|
| Hostad autentiseringsleverantör | Tjänster som är värd för inloggning, användarhantering och sessioner åt dig | Du vill ha inloggning igång snabbt med mindre säkerhetsansvar |
| Autentiseringsbibliotek i din app | Bibliotek med öppen källkod för ditt ramverk | Du vill ha användarna i din egen databas och inga avgifter per användare |
| Skriv själv | — | Nästan aldrig. För många subtila detaljer |
De två första är rimliga. Hostade leverantörer hanterar mer åt dig men lägger till ett beroende och kostar ibland per aktiv användare; kontrollera aktuella priser på deras webbplatser. Bibliotek håller allt i din databas men lämnar mer för dig att konfigurera korrekt. Oavsett vilket du väljer, be AI:n att använda det i stället för att handbygga lösenords- eller sessionslogik.
Roller och behörigheter
Inloggning talar om vem någon är. Behörigheter avgör vad de får göra. Håll det enkelt i början:
| Roll | Typiska behörigheter |
|---|---|
| Besökare | Se offentliga sidor |
| Medlem / kund | Se och redigera sina egna poster |
| Personal | Se alla poster i sitt team eller företag; kan inte ändra inställningar eller fakturering |
| Ägare / admin | Allt, inklusive användare och fakturering |
Regler som betyder mer än rollnamnen:
- Kontrollera på servern, varje gång. Att dölja en knapp på sidan stoppar inte någon från att anropa API:et direkt.
- Avgränsa efter ägare. En medlem som hämtar “bokning 123” ska bara få den om den är deras.
- Användare kan inte befordra sig själva. Ignorera rollfält som skickas från webbläsaren vid profiluppdateringar.
- Standard är ingen åtkomst. Nya rutter bör kräva inloggning om du inte bestämmer annat.
Testa med två konton: logga in som ett, notera en posts ID, logga in som det andra och försök öppna den. Vår säkerhetschecklista har hela testet.
Sessionssäkerhet
Efter inloggning kommer appen ihåg användaren med en session — oftast en cookie. OWASP:s vägledning för sessionshantering rekommenderar:
- Sessionscookies satta med
Secure(bara HTTPS),HttpOnly(kan inte läsas av sidskript) ochSameSite - Ett nytt sessions-ID utfärdas vid inloggning, och igen när behörigheter ändras
- En tidsgräns för inaktivitet och en absolut maximal livslängd, tillämpade på servern
- Utloggning som avslutar sessionen på servern, inte bara raderar cookien
- Sessioner ogiltigförklaras när en användare byter lösenord
Att lagra inloggningstokens i webbläsarens localStorage är vanligt i handledningar, men exponerar dem för alla skript som körs på sidan; säkra cookies är oftast det bättre standardvalet för webbappar.
En prompt som täcker grunderna
Lägg till användarkonton i den här appen. Användare kan registrera sig och logga in med e-post och lösenord, eller med Google. Använd [bibliotek eller leverantör] i stället för egen autentiseringskod. Hasha lösenord med Argon2id eller bcrypt. Lägg till lösenordsåterställning via e-post med en engångslänk som går ut efter en timme. Behåll sessioner i säkra HttpOnly-cookies. Skydda /dashboard och varje /api-rutt så att bara inloggade användare kan använda dem, och se till att användare bara ser sina egna projekt. Lägg till en roll “admin” som kan se alla användare; bara admins kan nå /admin, kontrollerat på servern.
Testa sedan: registrera dig, logga ut, logga in, återställ lösenordet, försök öppna en privat URL utloggad och försök öppna en annan användares post.
Vanliga misstag i AI-byggd inloggning
- Skydd bara på sidan. Sidan skickar utloggade användare vidare, men API:et returnerar data till vem som helst.
- Hemligheter i webbläsaren. OAuth-klienthemligheter och administrativa nycklar för autentiseringsleverantörer hör hemma på servern.
- Förhandsvisnings- och live-URL:er blandade. Googles omdirigerings-URI eller återställningsmejlets länk pekar på förhandsvisningen, så inloggningen går sönder efter publicering.
- Ingen e-postverifiering. Vem som helst kan registrera sig som någon@företag.se. Verifiera e-post innan du ger något som är kopplat till adressen.
- Att bara testa lyckosamma flödet. Prova fel lösenord, utgångna länkar och ett andra konto.
Lägga till inloggning i Mythex
På Mythex är inloggning för din apps användare något du lägger till i din app — det är separat från ditt eget Mythex-konto. Mythex tillhandahåller ingen inbyggd autentiseringsprodukt, så du tar med ett autentiseringsbibliotek eller en leverantör och dess nycklar:
- Välj en ansats — till exempel e-post och lösenord lagrade i din egen databas, eller en hostad leverantörs SDK.
- Om du lagrar användare själv behöver appen en databas; be om en i chatten eller använd
/database. - Lägg leverantörsnycklar i projekthemligheter (
/secretseller projektinställningarna). - Använd en prompt som den ovan, och testa sedan i förhandsvisningen. För Google-inloggning, lägg till omdirigerings-URI:er för både din förhandsvisning och din publicerade adress.
Se Lägg till inloggning i din app i dokumentationen. Om du bygger en betald produkt täcker hur du bygger en SaaS-MVP konton och fakturering tillsammans.
Frågor
Vilken inloggning är lättast att lägga till i en app?
Att använda en hostad autentiseringstjänst eller ett väl underhållet autentiseringsbibliotek är oftast enklast och säkrast, eftersom sessioner, lösenordslagring och återställning redan är hanterade. Logga in med Google är det minst krångliga alternativet för användare som har Google-konton.
Är magiska länkar säkrare än lösenord?
De tar bort lösenordsåteranvändning och svaga lösenord, men flyttar risken till användarens e-postkonto. Länkar bör gå ut snabbt och fungera bara en gång. För de flesta små appar är de ett rimligt val, ofta erbjudna tillsammans med inloggning med Google.
Behöver jag Googles godkännande för att lägga till Logga in med Google?
Om du bara begär grundläggande inloggningsuppgifter (namn, e-post och profil) säger Google att verifiering inte är obligatorisk, men du konfigurerar ändå en samtyckesskärm och en OAuth-klient. Att begära åtkomst till känslig data som Gmail eller Drive kräver Googles appverifiering.
Vad är skillnaden mellan inloggning och behörigheter?
Inloggning (autentisering) bekräftar vem användaren är. Behörigheter (auktorisering) avgör vad den användaren får se och göra. En app behöver båda, och behörigheter måste kontrolleras på servern vid varje förfrågan.