Zum Inhalt springen
Deutsch

Bearer-Token-Auth

BearerTokenAuth sichert einen Route-Teilbaum hinter einem vorab geteilten Authorization: Bearer <token>-Secret — der übliche Schutz für die destruktiven Management-Endpoints (/cluster/down, /cluster/leave). Tokens werden in konstanter Zeit verglichen, und ein 401 weist ein echtes WWW-Authenticate: Bearer realm="…"-Challenge aus.

import { BearerTokenAuth, withMiddleware } from 'actor-ts/http';
const auth = BearerTokenAuth({ tokens: [process.env.MANAGEMENT_TOKEN!] });
const managementRoutes = withMiddleware(auth, clusterRoutes);

tokens ist eine nicht-leere Liste, damit du ohne Downtime rotieren kannst: neues Token ausgeben, Clients darauf ausrollen, dann den alten Eintrag entfernen.

BearerTokenAuth({ tokens: [process.env.TOKEN_CURRENT!, process.env.TOKEN_PREVIOUS!] });

BearerTokenAuth nimmt ein einfaches Options-Objekt:

FeldZweck
tokensAkzeptierte Bearer-Tokens; mindestens eines muss passen. Muss nicht-leer sein (wirft sonst). Mehrere Einträge ermöglichen Rotation.
headerNameHeader, aus dem das Token gelesen wird. Default 'authorization' — klein geschrieben, da das Framework Header-Namen kleinschreibt.
realmRealm, das bei 401 im WWW-Authenticate ausgewiesen wird. Default 'actor-ts'.

Eine Anfrage wird mit 401 (plus WWW-Authenticate-Challenge) abgelehnt, wenn der Header fehlt, kein Bearer <token>-Wert ist oder ein Token trägt, das keinem der konfigurierten Einträge entspricht.