Autentisering
Autentisering är processen att fastställa vem en användare är – att verifiera ett lösenord, en kod, en passkey eller en token från en annan identitetsleverantör. Den besvarar bara frågan om identitet. Vad identiteten sedan får göra är auktorisering, vilket är ett eget beslut.
Autentisering är inte auktorisering
Två ord, ofta förkortade authn och authz, och att blanda ihop dem är källan till en stor del av all trasig åtkomstkontroll. Autentisering styrker att du är kontoinnehavaren. Auktorisering avgör om det kontot får läsa just den här posten. En applikation som bara kontrollerar det första låter glatt en inloggad användare hämta någon annans data genom att ändra ett id i adressen.
Hur sessionen faktiskt hålls vid liv
HTTP glömmer bort dig mellan anropen, så efter en lyckad inloggning utfärdar servern något som klienten skickar med varje gång:
- En sessionskaka som pekar på tillstånd på servern. Lätt att återkalla omedelbart, eftersom servern äger sessionsposten.
- En token, oftast en JWT, som bär signerade påståenden och inte kräver någon uppslagning på servern. Snabbt och tillståndslöst, men den gäller tills den går ut – en utfärdad token går inte att ta tillbaka, vilket är skälet till att korta livslängder plus en refresh-token är normen.
Var token lagras spelar roll. localStorage kan läsas av vilket skript som helst på sidan, så en enda XSS-lucka blottar den. En HttpOnly-kaka kan inte läsas från JavaScript men behöver skydd mot cross-site request forgery. Båda används i skarp drift, och ingendera är gratis.
Reglerna som håller
Lagra aldrig lösenord, bara hashar från en långsam algoritm gjord för ändamålet – bcrypt, scrypt eller Argon2. Upprätthåll aldrig en regel enbart i gränssnittet: att dölja en knapp hindrar ingen, eftersom anropet kan göras direkt. Begränsa antalet inloggningsförsök. Och betrakta en andra faktor som det mest värdefulla tillägg du kan göra, eftersom den i praktiken oskadliggör stulna och återanvända lösenord.
Färdiga leverantörer som Supabase Auth, Auth0 och Firebase Authentication finns för att det är genuint svårt att få allt det här rätt. NorthernGo-appar använder samma upplägg: .register(), .login(), .getToken() och .logout() ligger ovanpå ett hanterat identitetslager, och en app med inloggning måste dessutom erbjuda .deleteAccount() – en fungerande kontoradering krävs, eftersom GDPR artikel 17 ger användare rätt till radering.
Vanliga frågor
Är det säkert att spara en JWT i localStorage?
Det är vanligt men inte det säkraste valet. Allt JavaScript som körs på sidan kan läsa localStorage, så en XSS-sårbarhet läcker token. En HttpOnly-kaka skyddar mot det men kräver i stället skydd mot CSRF. Korta livslängder på token begränsar skadan i båda fallen.
Bygg det själv
NorthernGo förvandlar en beskrivning i ren text till en fungerande webbapp med databas, inloggning och en live-adress. Lokal AI-generering körs på ditt eget grafikkort, är obegränsad och ingår gratis i alla prisplaner.