FAQ - Häufig gestellte Fragen

So signieren Sie ein API-Token mit einem neuen Ablauf-Header

Mit folgendem Python-Code kann ein bestehender JWT decodiert, das exp-Claim (Ablaufzeitpunkt) neu gesetzt und der Token mit denselben Header-Informationen (inkl. kid und alg) erneut signiert werden. Ziel ist ein neuer, gültiger Token mit aktualisiertem Ablaufdatum:

from base64 import urlsafe_b64decode, b64encode 
from json import loads 
import datetime
from jwt import encode, decode
from typing import Dict, Any

def pad_base64url(b64string: str) -> str:
  return b64string + '=' * (-len(b64string) % 4)

def extract_header(jwt_token: str) -> Dict[str, Any]:
  header_b64 = jwt_token.split('.')[0]
  padded_header = pad_base64url(header_b64)
  header_json = urlsafe_b64decode(padded_header)

  return  loads(header_json)

def encode_secret(secret: str) -> bytes:
  return b64encode(secret.encode())

token: str = "eyJraWQiOiI1Zjc0RTZuME5pY…"
secret: bytes = encode_secret("d4cHsO5QTC…")

payload: Dict[str, Any] = decode(token, secret, algorithms=["HS512"], options={"verify_exp": False})

payload['exp'] = datetime.datetime.utcnow() + datetime.timedelta(hours=1)

new_token: str = encode(payload, secret, headers=extract_header(token), algorithm="HS512")

print(new_token)

Das ist besonders sinnvoll, wenn man kurzlebige Token verwenden möchte – etwa aus Sicherheitsgründen, um die Gültigkeitsdauer von Tokens bewusst zu begrenzen und so das Risiko bei Diebstahl oder Missbrauch zu minimieren.

Kann ich meinen Account mit Zwei-Faktor-Authentisierung schützen?

Ja, halten Sie einfach Ihre Smartphone App wie z.B. den Google Authenticator bereit und gehen Sie einfach unter Mein AccountZugangsdaten auf Zwei-Faktor-Authentifizierung einrichten um diese Einzurichten.

Bitte denken Sie daran die sich die Liste der Einmalpasswörter auszudrucken und an einen Sicheren Ort zu verwahren, für den Fall das Sie mal keinen Zugriff auf Ihr Smartphone haben sollten.