Interviewfrage für Full-Stack-Entwickler

Erklär mir den OAuth Authorization Code Flow mit PKCE.

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

Der Client erzeugt einen zufälligen Verifier, hasht ihn zu einer Code Challenge und leitet den Nutzer mit dieser Challenge zum Authorization Server. Der Nutzer authentifiziert sich, wird mit einem einmal nutzbaren Code zurückgeleitet, und der Client tauscht diesen Code plus den ursprünglichen Verifier gegen Tokens. Weil der Tausch den Verifier verlangt, ist ein abgefangener Code wertlos. OAuth 2.1 verlangt PKCE für jeden Client, öffentlich oder vertraulich.

Warum Interviewer das fragen

Fast jedes Produkt hat Social Login oder eine Third-Party-Integration, der Interviewer will also wissen, ob du so etwas umgesetzt oder nur durch eine Bibliothek geklickt hast. Er achtet auf den Redirect, darauf dass der Code-Tausch Server zu Server passiert, und darauf, warum es PKCE überhaupt gibt. Extrapunkte gibt es dafür, OAuth-Autorisierung von OIDC-Authentifizierung zu trennen, was die meisten Kandidaten verwischen.

So baust du deine Antwort auf

  • Zeichne den Ablauf der Reihe nach nach, vom Verifier bis zum Token-Tausch.
  • Erklär, welchen Angriff PKCE verhindert.
  • Unterscheide das ID-Token vom Access-Token.
  • Sag, wo jedes Token bei dir landet.

Beispielantwort

Gesprochenes Beispiel, erste Person

Der Client erzeugt zuerst einen Verifier mit hoher Entropie und hasht ihn mit SHA-256 zur Code Challenge. Er schickt den Nutzer mit Client-Id, Redirect-URI, Scopes, einem state-Wert und dieser Challenge zum Authorization Server. Der Nutzer loggt sich ein und stimmt zu, und der Authorization Server leitet mit einem kurzlebigen Code zurück. Der Client postet dann diesen Code und den rohen Verifier an den Token-Endpoint, der Server hasht den Verifier und prüft, ob er zur gespeicherten Challenge passt, und erst dann gibt er Tokens aus. Genau darum geht es bei PKCE: ein Code, der aus einem Redirect, einem Log oder einer bösartigen App auf dem Gerät gestohlen wurde, lässt sich ohne den Verifier nicht einlösen, und der hat den Client nie verlassen. Ich validiere state trotzdem separat, weil das CSRF auf dem Callback abdeckt und nicht das Abfangen des Codes. Geht es um Login statt um API-Zugriff, interessiert mich das OIDC-ID-Token, und ich validiere Signatur, Issuer, Audience und Nonce, bevor ich einem einzigen Claim darin vertraue.

Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.

So funktioniert es

Nachfragen, mit denen du rechnen solltest

  • Wovor schützt der state-Parameter, was PKCE nicht abdeckt?
  • Was ist der Unterschied zwischen einem ID-Token und einem Access-Token?
  • Wo würdest du das Refresh-Token für einen browserbasierten Client speichern?

Weitere Fragen für Full-Stack-Entwickler

Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.

Meine Fragen vorhersagen

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen