Guider

Vad är OAuth? ”Logga in med Google” och delegerad åtkomst förklarat

OAuth är en öppen standard som låter en användare ge en app begränsad åtkomst till deras konto på en annan tjänst, utan att lämna över sitt lösenord. När du klickar på ”Anslut Google-kalender” och ser en skärm som frågar ”Tillåt den här appen att se dina händelser?” är det OAuth. Appen får en token för exakt det du godkände, som du kan återkalla när som helst. Samma mekanik, med ett extra lager som kallas OpenID Connect, driver ”Logga in med Google” och liknande knappar.

Varför OAuth spelar roll när du bygger med AI

OAuth dyker upp i två vanliga situationer när du bygger en app:

  1. Social inloggning. Du vill att dina användare ska ”Logga in med Google” (eller Apple, Microsoft, GitHub) i stället för att skapa ytterligare ett lösenord. Se hur du lägger till inloggning i din app.
  2. Koppla till användares konton på andra tjänster. Din app behöver läsa en användares kalender, publicera till deras sociala konto, hämta filer från deras molnlagring eller synka deras bokföringsdata.

I båda fallen kan din AI-byggare skriva koden, men vissa steg kan bara du göra: skapa en utvecklarapp hos leverantören, få ett client ID och en client secret, registrera callback-URL:er och, för vissa behörigheter, klara leverantörens granskning. Att förstå hur OAuth fungerar gör dessa steg — och felen de ger — mycket mindre mystiska. För den större bilden av inloggning, se vad autentisering är.

En vardagsliknelse

Tänk på ett hotellnyckelkort. Vid incheckningen bekräftar receptionen vem du är, sedan ger de dig ett kort som öppnar ditt rum och gymmet — inte de andra rummen, inte personalens områden — och som slutar fungera vid utcheckningen. Kortet innehåller inte ditt pass. Om du tappar det spärrar receptionen det och ger ut ett nytt.

  • Receptionen är auktoriseringsservern (Googles inloggningssida).
  • Din identitetskontroll är att du loggar in på Google.
  • Nyckelkortet är åtkomsttoken.
  • ”Rummet och gymmet endast” är scopes du godkände.
  • Utcheckningen är att token löper ut, eller att du återkallar åtkomsten.

Appen du använder ser aldrig ditt Google-lösenord, bara nyckelkortet.

Hur OAuth fungerar, steg för steg

Det vanligaste flödet för webbappar är authorization code-flödet. Så här går det till när en användare kopplar sin Google-kalender till en schemaläggningsapp:

  1. Klick. Användaren klickar på ”Anslut Google-kalender”.
  2. Omdirigering till leverantören. Appen skickar webbläsaren till Google med sitt client ID, de scopes den vill ha (läsa kalenderhändelser) och redirect URI dit Google ska skicka tillbaka användaren.
  3. Logga in och samtyck. Användaren loggar in på Google (om den inte redan är inloggad) och ser en samtyckesskärm som listar vad appen begär. De klickar på Tillåt.
  4. Tillbaka med en kod. Google omdirigerar webbläsaren till appens redirect URI med en kortlivad, engångsbar authorization code.
  5. Byt på servern. Appens server skickar koden, tillsammans med klienthemligheten, direkt till Google och tar emot en åtkomsttoken (och ofta en uppdateringstoken).
  6. Använd API:et. Servern anropar Google Calendars API med åtkomsttoken och hämtar användarens händelser.

Callbacken i steg 4 ser ut ungefär så här:

https://yourapp.com/auth/google/callback?code=4/0Adeu5B...&state=x7Kq9

Och token-svaret i steg 5 är JSON som:

{
  "access_token": "ya29.a0Af...",
  "expires_in": 3599,
  "refresh_token": "1//0gL...",
  "scope": "https://www.googleapis.com/auth/calendar.readonly",
  "token_type": "Bearer"
}

Den viktiga designpunkten: tokenbytet sker server-till-server, så klienthemligheten och tokens behöver aldrig passera webbläsaren.

OAuth vs OpenID Connect vs din egen inloggning

Vad den besvararExempel
OAuth 2.0”Vad får den här appen göra på användarens vägnar?” (auktorisering)Läsa en användares kalender
OpenID Connect (OIDC)”Vem är den här användaren?” (autentisering), byggt på OAuth”Logga in med Google” som returnerar en verifierad e-post
Din egen inloggning”Är det här rätt lösenord för kontot?”E-post och lösenord lagrade (hashade) i din databas

Många appar kombinerar dem: e-post-och-lösenord-inloggning, plus ”Logga in med Google” via OIDC, plus separata OAuth-kopplingar till andra tjänster.

Nyckeltermer

TermBetydelse
Leverantör / auktoriseringsserverTjänsten användaren loggar in hos och ger åtkomst hos — Google, Microsoft, GitHub.
KlientDin app, registrerad hos leverantören.
Client IDDin apps publika identifierare hos leverantören.
Client secretDin apps privata lösenord hos leverantören. Endast på servern.
ScopeEn specifik behörighet, som ”läs kalender” eller ”se e-postadress”.
SamtyckesskärmSidan där användaren ser och godkänner de begärda scopes.
Redirect URI / callback-URLDit leverantören skickar tillbaka användaren. Måste registreras i förväg och matcha exakt.
ÅtkomsttokenKortlivad credential för att anropa API:et.
UppdateringstokenLängre levande credential för att hämta nya åtkomsttokens. Förvara den som ett lösenord.
ID-tokenI OIDC, en signerad token som beskriver vem användaren är.
PKCEEn extra kontroll (”proof key”) som hindrar att avlyssnade koder används. Rekommenderas för alla klienter.
stateEtt slumpmässigt värde som skyddar flödet mot förfalskade förfrågningar.

Vanliga missuppfattningar

  • ”OAuth är ett inloggningssystem.” Vanlig OAuth ger åtkomst; OpenID Connect hanterar identitet. Att använda en bar åtkomsttoken som bevis på vem någon är har orsakat riktiga säkerhetsbuggar.
  • ”Appen får mitt lösenord.” Det gör den aldrig. Det är hela poängen.
  • ”Att begära fler scopes är ofarligt.” Användare är mer försiktiga med breda förfrågningar, och leverantörer som Google kan kräva en appgranskning för känsliga eller begränsade scopes. Be bara om det du behöver.
  • ”Klienthemligheten kan ligga i frontend.” Allt i webbläsarkod är publikt. Håll den i serverhemligheter.
  • ”Det fungerar i test, så det fungerar i produktion.” Leverantörer begränsar ofta overifierade appar — till exempel till listade testanvändare — och redirect-URI:n för din live-domän måste registreras separat.
  • ”Tokens varar för evigt.” Åtkomsttokens löper ut snabbt, och användare kan återkalla åtkomst. Din app måste hantera båda på ett smidigt sätt.

Vad du ska fråga din AI-byggare

  • ”Lägg till ’Logga in med Google’ med OpenID Connect och ett väl underhållet auth-bibliotek — skriv inte OAuth-flödet själv.”
  • ”Använd authorization code-flödet med PKCE och kontrollera state-parametern.”
  • ”Läs client ID och client secret från miljövariabler på servern.”
  • ”Begär bara de scopes vi behöver: skrivskyddad kalenderåtkomst.”
  • ”Berätta vilka redirect-URL:er jag behöver registrera i leverantörens konsol, för förhandsvisningen, den publicerade URL:en och min egen domän.”
  • ”Lagra uppdateringstokens krypterade i databasen, och hantera utgångna eller återkallade tokens genom att be användaren ansluta igen.”
  • ”Låt användare koppla bort integrationen från sin inställningssida.”

OAuth och Mythex

Mythex har ingen inbyggd slutanvändarinloggning för apparna du bygger; dokumentationen beskriver ett eget-verktyg-tillvägagångssätt — du väljer ett auth-bibliotek eller en hostad leverantör, lagrar dess nycklar som projekthemligheter, och agenten skriver koden. Recept för att lägga till autentisering har en startprompt för detta. Du möter också OAuth i Mythex självt: du kan registrera dig med Google, att koppla GitHub för repo-synk använder GitHub OAuth, och AI-klienter som ansluter till Mythex via MCP går genom en OAuth-samtyckessida. För mer, se vad autentisering är och vad tvåfaktorsautentisering är.

Frågor

Vad är OAuth, enkelt uttryckt?

OAuth är ett standardsätt för en användare att låta en app komma åt deras konto på en annan tjänst — till exempel att låta en schemaläggningsapp läsa deras Google-kalender — utan att ge appen deras lösenord. Användaren godkänner specifika behörigheter, och appen får en token den kan använda för just dem.

Är OAuth samma sak som ”Logga in med Google”?

”Logga in med Google” bygger på OAuth 2.0 plus OpenID Connect, ett lager ovanpå OAuth som lägger till ett standardsätt att tala om för appen vem användaren är. OAuth i sig handlar om att bevilja åtkomst; OpenID Connect är det som gör det till en inloggning.

Vad är en OAuth-åtkomsttoken?

En åtkomsttoken är en credential som appen skickar till en tjänsts API för att bevisa att den har fått åtkomst. Den är oftast kortlivad och begränsad till de behörigheter (scopes) användaren godkände. En uppdateringstoken, om den utfärdas, låter appen hämta nya åtkomsttokens utan att fråga användaren igen.

Vad betyder redirect_uri_mismatch?

Det betyder att callback-URL:en din app skickade under inloggningen inte exakt matchar en som är registrerad i leverantörens utvecklarkonsol. Lägg till exakt URL — inklusive https, domän, sökväg och eventuellt avslutande snedstreck — för varje adress din app körs på.

Är OAuth säkert?

OAuth 2.0 används i stor utsträckning och är säkert när det implementeras korrekt: med authorization code-flödet och PKCE, exakta redirect-URL:er, state-parametern, och med klienthemligheten och tokens hållna på servern. De flesta problem beror på genvägar i implementationen, vilket är varför ett väl underhållet bibliotek rekommenderas.

Mythex · Pricing · Bygg vad som helst med AI · Mallar för webbplatser och appar · Mythex jämfört · Ordlista för apputveckling med AI · Gratis verktyg för apputveckling med AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk 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 Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)