Guider

Hva er OAuth? «Logg inn med Google» og delegert tilgang forklart

OAuth er en åpen standard som lar en bruker gi én app begrenset tilgang til kontoen sin hos en annen tjeneste, uten å gi fra seg passordet sitt. Når du klikker «Koble til Google-kalender» og ser en skjerm som spør «Tillate at denne appen ser hendelsene dine?», er det OAuth. Appen får et token for nøyaktig det du godkjente, som du kan trekke tilbake når som helst. Den samme mekanismen, med et ekstra lag kalt OpenID Connect, driver «Logg inn med Google» og lignende knapper.

Hvorfor OAuth betyr noe når du bygger med AI

OAuth dukker opp i to vanlige situasjoner når du bygger en app:

  1. Sosial innlogging. Du vil at brukerne skal kunne «Logge inn med Google» (eller Apple, Microsoft, GitHub) i stedet for å lage enda et passord. Se hvordan legge til innlogging i appen din.
  2. Kobling til brukernes kontoer hos andre tjenester. Appen din må lese en brukers kalender, poste på vedkommendes sosiale konto, hente filer fra skytjenesten eller synkronisere regnskapsdata.

I begge tilfeller kan AI-byggeren skrive koden, men noen steg kan bare du gjøre: opprette en utviklerapp hos leverandøren, hente en client ID og client secret, registrere callback-URL-er og, for noen tillatelser, bestå leverandørens gjennomgang. Å forstå hvordan OAuth fungerer gjør disse stegene — og feilene de gir — mye mindre mystiske. For det større bildet av innlogging, se hva autentisering er.

En hverdagslig sammenligning

Tenk på et hotellkort. Ved innsjekking bekrefter resepsjonen hvem du er, og gir deg så et kort som åpner rommet ditt og treningsrommet — ikke de andre rommene, ikke personalområdene — og slutter å fungere ved utsjekking. Kortet inneholder ikke passet ditt. Hvis du mister det, sperrer resepsjonen det og gir deg et nytt.

  • Resepsjonen er autorisasjonsserveren (Googles påloggingsside).
  • ID-kontrollen din er at du logger inn hos Google.
  • Nøkkelkortet er tilgangstokenet.
  • «Rommet og treningsrommet» er scopene du godkjente.
  • Utsjekking er at tokenet utløper, eller at du trekker tilbake tilgangen.

Appen du bruker ser aldri Google-passordet ditt, bare nøkkelkortet.

Slik fungerer OAuth, steg for steg

Den vanligste flyten for webapper er authorization code flow. Her er hva som skjer når en bruker kobler Google-kalenderen sin til en planleggingsapp:

  1. Klikk. Brukeren klikker «Koble til Google-kalender».
  2. Videresending til leverandøren. Appen sender nettleseren til Google med sin client ID, scopene den vil ha (lese kalenderhendelser) og redirect URI der Google skal sende brukeren tilbake.
  3. Logg inn og samtykk. Brukeren logger inn hos Google (hvis han ikke allerede er det) og ser et samtykkeskjerm som lister hva appen ber om. Han klikker Tillat.
  4. Tilbake med en kode. Google sender nettleseren til appens redirect URI med en kortlivet, engangs authorization code.
  5. Utveksling på serveren. Appens server sender koden, sammen med klienthemmeligheten, direkte til Google og får en access token (og ofte en refresh token).
  6. Bruk API-et. Serveren kaller Google Kalender-API-et med tilgangstokenet og henter brukerens hendelser.

Callbacken i steg 4 ser omtrent slik ut:

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

Og token-responsen i steg 5 er JSON som dette:

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

Det viktige designpoenget: utvekslingen av token skjer server-til-server, så klienthemmeligheten og tokenene trenger aldri å passere gjennom nettleseren.

OAuth vs OpenID Connect vs din egen innlogging

Hva det svarer påEksempel
OAuth 2.0«Hva får denne appen gjøre på brukerens vegne?» (autorisasjon)Lese en brukers kalender
OpenID Connect (OIDC)«Hvem er denne brukeren?» (autentisering), bygget på OAuth«Logg inn med Google» som returnerer en verifisert e-post
Din egen innlogging«Er dette riktig passord for denne kontoen?»E-post og passord lagret (hashet) i databasen din

Mange apper kombinerer dem: innlogging med e-post og passord, pluss «Logg inn med Google» via OIDC, pluss egne OAuth-koblinger til andre tjenester.

Viktige begreper

BegrepBetydning
Leverandør / autorisasjonsserverTjenesten brukeren logger inn hos og gir tilgang i — Google, Microsoft, GitHub.
KlientAppen din, slik den er registrert hos leverandøren.
Client IDAppens offentlige identifikator hos leverandøren.
Client secretAppens private passord hos leverandøren. Kun på serveren.
ScopeEn bestemt tillatelse, som «les kalender» eller «se e-postadresse».
SamtykkeskjermSiden der brukeren ser og godkjenner de ønskede scopene.
Redirect URI / callback-URLHvor leverandøren sender brukeren tilbake. Må registreres på forhånd og stemme nøyaktig.
Access tokenKortlivet legitimasjon for å kalle API-et.
Refresh tokenLanglivet legitimasjon for å få nye tilgangstokener. Lagre den som et passord.
ID tokenI OIDC, et signert token som beskriver hvem brukeren er.
PKCEEn ekstra sjekk («proof key») som hindrer at avlyttede koder brukes. Anbefales for alle klienter.
stateEn tilfeldig verdi som beskytter flyten mot forfalskede forespørsler.

Vanlige misforståelser

  • «OAuth er et innloggingssystem.» Ren OAuth gir tilgang; OpenID Connect håndterer identitet. Å bruke et bart tilgangstoken som bevis på hvem noen er, har forårsaket reelle sikkerhetsfeil.
  • «Appen får passordet mitt.» Det får den aldri. Det er poenget.
  • «Å be om flere scopes er ufarlig.» Brukere er mer skeptiske til brede forespørsler, og leverandører som Google kan kreve en app-gjennomgang for sensitive eller begrensede scopes. Be bare om det du trenger.
  • «Klienthemmeligheten kan ligge i frontend.» Alt i nettleserkode er offentlig. Hold den i hemmeligheter på serveren.
  • «Det fungerer i testing, så det fungerer i produksjon.» Leverandører begrenser ofte ikke-verifiserte apper — for eksempel til oppførte testbrukere — og redirect-URI-en for ditt live domene må registreres separat.
  • «Tokens varer evig.» Tilgangstokener utløper raskt, og brukere kan trekke tilbake tilgangen. Appen din må håndtere begge deler på en fin måte.

Hva du bør spørre AI-appbyggeren om

  • «Legg til «Logg inn med Google» med OpenID Connect og et veldokumentert autentiseringsbibliotek — ikke skriv OAuth-flyten selv.»
  • «Bruk authorization code-flyt med PKCE, og sjekk state-parameteren.»
  • «Les client ID og client secret fra miljøvariabler på serveren.»
  • «Be bare om de scopene vi trenger: lesetilgang til kalenderen.»
  • «Fortell meg alle redirect-URL-er jeg må registrere i leverandørens konsoll, for forhåndsvisningen, den publiserte URL-en og mitt eget domene.»
  • «Lagre refresh tokens kryptert i databasen, og håndter utløpte eller tilbakekalte tokens ved å be brukeren koble til på nytt.»
  • «La brukere koble fra integrasjonen fra innstillingssiden sin.»

OAuth og Mythex

Mythex har ikke innebygd innlogging for sluttbrukere i appene du bygger; dokumentasjonen beskriver en «bring-your-own»-tilnærming — du velger et autentiseringsbibliotek eller en hostet leverandør, lagrer nøklene som prosjekthemmeligheter, og agenten skriver koden. Oppskriften for å legge til autentisering har en startprompt for dette. Du møter også OAuth i selve Mythex: du kan registrere deg med Google, å koble til GitHub for repo-synkronisering bruker GitHub OAuth, og AI-klienter som kobler seg til Mythex over MCP går gjennom en samtykkeside for OAuth. For mer, se hva autentisering er og hva tofaktorautentisering er.

Spørsmål

Hva er OAuth enkelt forklart?

OAuth er en standard måte for en bruker å la én app få tilgang til kontoen sin hos en annen tjeneste — for eksempel at en planleggingsapp leser Google-kalenderen hans — uten å gi appen passordet. Brukeren godkjenner bestemte tillatelser, og appen får et token den kan bruke bare til disse.

Er OAuth det samme som «Logg inn med Google»?

«Logg inn med Google» er bygget på OAuth 2.0 pluss OpenID Connect, et lag oppå OAuth som gir en standard måte å fortelle appen hvem brukeren er. OAuth alene handler om å gi tilgang; OpenID Connect er det som gjør det til en innlogging.

Hva er et OAuth-tilgangstoken?

Et tilgangstoken er en legitimasjon appen sender til en tjenestes API for å bevise at den har fått tilgang. Det er vanligvis kortlivet og begrenset til tillatelsene (scopes) brukeren godkjente. Et oppdateringstoken (refresh token), hvis det utstedes, lar appen få nye tilgangstokener uten å spørre brukeren på nytt.

Hva betyr redirect_uri_mismatch?

Det betyr at callback-URL-en appen sendte under innlogging ikke stemmer nøyaktig med en som er registrert i leverandørens utviklerkonsoll. Legg inn den nøyaktige URL-en — inkludert https, domene, sti og eventuell avsluttende skråstrek — for hver adresse appen kjører på.

Er OAuth sikkert?

OAuth 2.0 er mye brukt og sikkert når det implementeres riktig: med authorization code-flyt med PKCE, eksakte redirect-URL-er, state-parameteren, og med klienthemmeligheten og tokenene holdt på serveren. De fleste problemer kommer av snarveier i implementeringen, og det er grunnen til at et veldokumentert bibliotek anbefales.

Mythex · Pricing · Bygg hva som helst med KI · Maler for nettsider og apper · Mythex sammenlignet · Ordliste for app-bygging med KI · Gratis verktøy for app-bygging med KI · 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 မြန်မာ 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 简体中文 繁體中文(香港) 繁體中文(台灣)