Spring Security 6 & JWT Authentication · Lektion

Ablauf und Validierungsregeln für JWTs

Verstehen Sie, wie die Gültigkeitsdauer eines JWT mit zeitbasierten Claims wie exp, nbf und iat gesteuert wird und wie Validatoren abgelaufene oder verfrühte Tokens ablehnen.

Lektion 4 von 413 Schritte

Ablauf und Validierungsregeln für JWTs ist eine kostenlose Spring Security 6 & JWT Authentication-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Spring Security 6 & JWT Authentication-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Spring Security 6 & JWT Authentication-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Why Tokens Need a Lifetime

A JWT is a bearer credential: whoever holds it is trusted. If a token never expired, a leaked token would grant access forever.

Time-based claims limit the damage window by making tokens valid only for a short period.

The exp Claim

The exp (expiration) claim is a Unix timestamp. After this moment the token is invalid and must be rejected.

{
  'sub': 'user123',
  'exp': 1717200000
}

The iat Claim

The iat (issued at) claim records when the token was created. It is useful for measuring token age and for revoking all tokens issued before a certain time.

{
  'sub': 'user123',
  'iat': 1717196400,
  'exp': 1717200000
}

The nbf Claim

The nbf (not before) claim defines the earliest time a token becomes valid. A token used before its nbf time must be rejected, which is handy for tokens scheduled to activate later.

{
  'sub': 'user123',
  'nbf': 1717196400,
  'exp': 1717200000
}

Choosing an Expiration Window

Short lifetimes are safer but force frequent re-authentication. A common pattern is:

  • Access token: 5-15 minutes
  • Refresh token: days or weeks

The short access token limits exposure; the refresh token keeps the user logged in.

Setting exp When Issuing

When you build a token, set exp relative to now. Here a 15-minute access token is created using a JWT library.

const now = Math.floor(Date.now() / 1000);
const payload = {
  sub: 'user123',
  iat: now,
  exp: now + 15 * 60
};

Validating exp on the Server

On every request the server checks exp against the current time. Most libraries do this automatically and throw if the token is expired.

try {
  const claims = verify(token, secret);
} catch (err) {
  if (err.name === 'TokenExpiredError') {
    // reject with 401
  }
}

Clock Skew

Servers do not always have perfectly synchronized clocks. A small leeway (a few seconds) prevents valid tokens from being rejected because of minor clock differences.

verify(token, secret, { clockTolerance: 5 });

exp Is Not Encryption

Remember: a JWT payload is only encoded, not encrypted. The exp claim stops the server from accepting the token, but anyone can read the claims. Never put secrets in the payload.

Reacting to Expiry on the Client

When the client gets a 401 due to expiry, it should silently request a new access token using the refresh token, then retry the original request.

if (response.status === 401) {
  const fresh = await refreshAccessToken();
  return retryWith(fresh);
}

Common Validation Mistakes

Watch out for these errors:

  • Forgetting to validate exp at all
  • Using milliseconds instead of seconds for the timestamp
  • Setting an excessively long lifetime
  • Ignoring nbf, allowing premature use

Quick Check

Test your knowledge of JWT time claims.

Recap

You learned how JWT lifetime is controlled:

  • exp sets the expiration; iat records issue time; nbf sets earliest validity
  • Use short access tokens plus longer refresh tokens
  • Allow small clock skew with leeway
  • exp does not encrypt the payload

Proper expiration handling keeps stolen tokens useful for only a brief window.

Kostenlos starten

Lerne Java mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
12
Lektionen
48

Häufig gestellte Fragen

Ist die Lektion „Ablauf und Validierungsregeln für JWTs“ kostenlos?

Ja — der vollständige Text von „Ablauf und Validierungsregeln für JWTs“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Spring Security 6 & JWT Authentication-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Spring Security 6 & JWT Authentication-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Ablauf und Validierungsregeln für JWTs“?

Verstehen Sie, wie die Gültigkeitsdauer eines JWT mit zeitbasierten Claims wie exp, nbf und iat gesteuert wird und wie Validatoren abgelaufene oder verfrühte Tokens ablehnen. Du übst Spring Security 6 & JWT Authentication mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Spring Security 6 & JWT Authentication zu starten?

Keine Vorkenntnisse erforderlich. Spring Security 6 & JWT Authentication auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Ablauf und Validierungsregeln für JWTs“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Spring Security 6 & JWT Authentication-Lektion Code schreiben und ausführen?

Ja. Jede Spring Security 6 & JWT Authentication-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. JSON Web Tokens verstehen
  2. JWT-Struktur und Claims
  3. JWTs signieren und verifizieren
  4. Ablauf und Validierungsregeln für JWTs
← Zurück zu Spring Security 6 & JWT Authentication