Auth, die mit dem
Framework mitkommt.
Kein Third-Party-Auth-Provider, keine Integrations-Steuer. @voltro/plugin-auth bringt Passwörter, Sessions, Passkeys, MFA und Multi-Tenant-Memberships; RBAC kompiliert Rollen zu Scopes; API-Keys sind first-class. Bring deinen eigenen IdP mit, wenn nötig — sechs Adapter plus SAML und SCIM stapeln sich daneben.
// app.config.ts — API keys are first-class
export default { apiKeys: true /* … */ }
// auth wiring — passwords, sessions, passkeys, MFA
import { authRoutesPlugin } from '@voltro/plugin-auth'
import { permission } from '@voltro/plugin-rbac'
plugins: [authRoutesPlugin()] // mounts /auth/*
// guard a mutation — the Effect-native RBAC scope check
import { EffectStore } from '@voltro/runtime'
import { Effect } from 'effect'
export default (input, ctx) => Effect.gen(function* () {
yield* permission(ctx, 'posts:write') // fails typed Forbidden
const store = yield* EffectStore
return yield* store.insert('posts', input)
})Was in der Auth-Suite mitkommt.
Passwörter & signierte Sessions
scrypt-Hashing mit Rehash-on-Verify, stateless signierte Cookie-Sessions mit Multi-Key-Rotation und Sliding-Window-Renewal, Magic Links, Passwort-Reset, CSRF und Session-Enumeration + Revocation.
Passkeys / WebAuthn
Erstklassiger passwortloser Login mit atomarer Clone-Detection und einem Bring-your-own-Multi-Replica-Challenge-Store. Einmal registrieren, mit Geräte-Biometrie einloggen.
MFA & Memberships
TOTP-MFA mit Sign-in-Enforcement und Recovery-Codes, plus Multi-Tenant-Memberships und Switch-Tenant — ein Nutzer kann mehreren Orgs angehören und zwischen ihnen wechseln.
API-Keys, first-class
Aktiviere apiKeys in app.config.ts für Bearer-Key-Auth mit admin-gegatetem Issue / List / Revoke und Hash-only-Storage — kein Plugin, Teil des Protokolls.
RBAC, das zu Scopes kompiliert
@voltro/plugin-rbac macht aus Rollen Scopes über das Scope-System des Protokolls: permission()- / assertPermission()-Guards, compileRoles(), typisierte Forbidden-Errors und ein useCan()-Hook für die UI.
Enterprise-SSO — SAML, SCIM, OIDC
Sechs IdP-Adapter (WorkOS, Clerk, Auth0, Kinde, Supabase, generisches OIDC) verifizieren JWTs via JWKS und mappen Claims auf einen Tenant. @voltro/plugin-sso-saml ergänzt SAML 2.0; @voltro/plugin-scim ergänzt SCIM-2.0-Provisioning.
Strategien stapeln; das Subject ist typisiert.
Ein Identitätsmodell, viele Eingangstüren
Auth-Strategien komponieren — Passwort und ein IdP können nebeneinander laufen, jede löst zum selben typisierten Subject auf, das deine Handler lesen. Eine geteilte JWT-Bearer-Strategie verifiziert JWKS und mappt Claims auf einen Tenant, sodass SSO hinzuzufügen keinen einzigen Handler ändert. React-Glue (SubjectProvider, useSubject, RequireAuth) verdrahtet den Client.
Auth komponiert mit dem Rest der Runtime.
Multi-Tenancy
Das Subject trägt den Tenant; der tenant()-Mixin scopet jeden Read und Write darauf.
Typsicherheit
Forbidden- und Auth-Errors sind typisiert; der Client pattern-matcht sie wie jeden anderen.
Plugins & Ökosystem
Auth, RBAC, SAML und SCIM sind Plugins über einen Vertrag — füg nur hinzu, was du brauchst.
Öffne das Framework. Schau es dir selbst an.
Jede Primitive auf dieser Seite ist heute im Framework. Klone den Starter, lass `voltro dev` laufen, in zwei Minuten ist es auf dem Bildschirm.