Standardmäßig serverseitige Sessions in einem httpOnly-, Secure- und SameSite-Cookie, weil du sofort widerrufen kannst und der Client nie etwas Sensibles hält. JWTs verdienen ihren Platz, wenn Services keinen gemeinsamen Session-Store haben können und du zustandslose Prüfung brauchst. Wenn du sie nutzt, halt Access-Tokens kurzlebig, kombinier sie mit einem rotierenden Refresh-Token und akzeptier, dass Widerruf vor Ablauf eine Denylist braucht, die du jetzt pflegst.
Warum Interviewer das fragen
Das ist eine Urteilsfrage im Trivia-Gewand. Der Interviewer will eine Voreinstellung mit Begründung hören, keine Glaubensantwort, und er achtet darauf, ob du das Widerrufsproblem und das Speicherproblem kennst. Wer sagt, JWTs seien sicherer, oder localStorage vorschlägt, hat meist noch kein Auth-System in Produktion betrieben. Die Abwägung zu benennen ist mehr wert, als eine Seite zu wählen.
So baust du deine Antwort auf
- Nenn deine Voreinstellung und den einen Grund dafür.
- Nenn die Bedingung, die deine Meinung ändern würde.
- Erklär das Widerrufsproblem bei Tokens.
- Deck ab, wo das Credential auf dem Client gespeichert wird.
Beispielantwort
Für ein normales Produkt mit einem Backend starte ich mit Server-Sessions. Eine opake Session-Id in einem httpOnly-Cookie heißt, dass der Browser sie nicht lesen kann, ein XSS-Bug übergibt also nicht sofort ein Konto, und jemanden überall auszuloggen ist ein einzelnes Zeilen-Delete. Dieser sofortige Widerruf ist eine Menge wert, sobald du das erste Mal um zwei Uhr nachts ein kompromittiertes Konto sperren musst. Zu JWTs wechsle ich, wenn mehrere Services einen Aufrufer ohne gemeinsamen Store prüfen müssen, oder wenn ein Mobile-Client und ein Browser-Client dieselbe API treffen. Selbst dann halte ich Access-Tokens bei etwa fünfzehn Minuten mit einem rotierenden Refresh-Token, und ich erkenne Wiederverwendung eines Refresh-Tokens als Diebstahlsignal. Was ich nicht mache, ist Tokens in localStorage zu legen; brauche ich sie im Browser, kommen sie in ein httpOnly-Cookie mit gesetztem SameSite und CSRF-Schutz auf zustandsändernden Requests. Zustandslosigkeit ist ein echter Vorteil, aber die Kosten, nicht widerrufen zu können, werden unterschätzt.
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 esNachfragen, mit denen du rechnen solltest
- Wie würdest du einen Nutzer mit JWTs von jedem Gerät ausloggen?
- Warum ist localStorage ein schlechter Ort für ein Token?
- Wie erkennt Refresh-Token-Rotation ein gestohlenes Token?
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