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.

auth.ts
TypeScript
// 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.

Ö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.