Skip to Content

Schnellstart

Diese Anleitung führt dich durch die Integration der Auris-Authentifizierung in deine Anwendung von Grund auf. Am Ende hast du einen funktionierenden Login-Flow, der Benutzer zur gehosteten Auris-Login-Seite umleitet, den Callback verarbeitet und die Informationen des authentifizierten Benutzers anzeigt.

Geschätzte Zeit: 5–10 Minuten.


Voraussetzungen

  • Node.js 20+ (für JavaScript-, React- und Next.js-Integrationen)
  • PHP 7.4+ mit Composer (für PHP-Integrationen)
  • Ein Auris-Konto — melde dich unter deiner Auris-Konsolen-URL an
  • Ein bestehendes Anwendungsprojekt, dem du Authentifizierung hinzufügen möchtest

Schritt 1: Erstelle eine Anwendung in der Konsole

Bevor du ein SDK installierst, registriere deine Anwendung bei Auris, um eine Client-ID zu erhalten.

  1. Melde dich bei der Auris-Konsole an.
  2. Navigiere zu Anwendungen in der Seitenleiste.
  3. Klicke auf Anwendung erstellen.
  4. Wähle den Anwendungstyp:
    • WEB — für Browser-basierte Apps (React, Next.js, Vue, Angular, Server-Rendering)
    • MOBILE — für native iOS- oder Android-Apps
    • M2M — für Server-zu-Server- oder CLI-Tool-Integrationen (kein Benutzer-Login)
  5. Gib einen Anzeigenamen für deine Anwendung ein (z. B. Meine App - Entwicklung).
  6. Füge deine Weiterleitungs-URI hinzu — die URL, zu der Auris nach einem erfolgreichen Login weiterleitet:
    • Lokale Entwicklung: http://localhost:3000/callback
    • Produktion: https://ihredomain.com/callback
  7. Klicke auf Erstellen.

Kopiere nach der Erstellung deine Client-ID von der Anwendungsdetailseite. Du benötigst sie in den nächsten Schritten.

Lege dein Client-Secret niemals im browser-seitigen JavaScript offen. Für die Anwendungstypen WEB und MOBILE verwendet Auris PKCE (Proof Key for Code Exchange) und benötigt kein Client-Secret. Client-Secrets werden nur für M2M (client_credentials)-Anwendungen verwendet, die serverseitig ausgeführt werden.


Schritt 2: SDK installieren

Wähle das SDK, das zu deinem Stack passt. Alle Pakete werden auf npm (JavaScript/TypeScript) oder Packagist (PHP) veröffentlicht.

npm install @auris/nextjs @auris/react @auris/js

@auris/nextjs re-exportiert alles von @auris/react und @auris/js, daher benötigst du in einem Next.js-Projekt nur einen einzigen Import-Pfad.


Schritt 3: Auris konfigurieren

Initialisiere den Auris-Client mit deiner Tenant-Domain und Anwendungs-Client-ID.

Füge AurisProvider zu deinem Root-layout.tsx hinzu. Der Provider übernimmt Token-Speicherung, Aktualisierung und den Auth-State-Kontext für alle untergeordneten Komponenten.

// app/layout.tsx import { AurisProvider } from '@auris/nextjs' export default function RootLayout({ children, }: { children: React.ReactNode }) { return ( <html lang="de"> <body> <AurisProvider domain="https://auth.ihredomain.com" clientId="IHRE_CLIENT_ID" redirectUri="http://localhost:3000/callback" > {children} </AurisProvider> </body> </html> ) }

Füge dann die Auris-Middleware hinzu, um Routen zu schützen. Erstelle oder aktualisiere middleware.ts im Projektstamm:

// middleware.ts import { aurisMiddleware } from '@auris/nextjs/middleware' export default aurisMiddleware({ domain: process.env.AURIS_DOMAIN!, clientId: process.env.AURIS_CLIENT_ID!, // Routen, die Authentifizierung erfordern protectedPaths: ['/dashboard', '/einstellungen', '/profil'], // Routen, die Auth-Prüfungen überspringen (OAuth-Callback muss öffentlich sein) publicPaths: ['/callback', '/login', '/'], }) export const config = { matcher: ['/((?!_next/static|_next/image|favicon.ico).*)'], }

Schritt 4: Login-Button hinzufügen

'use client' import { useAuris } from '@auris/nextjs' export function LoginButton() { const { loginWithRedirect } = useAuris() return ( <button onClick={() => loginWithRedirect()}> Anmelden </button> ) }

Schritt 5: Callback verarbeiten

Nach der Authentifizierung leitet Auris den Benutzer mit einem Autorisierungscode zurück zu deiner redirectUri. Deine Anwendung muss diesen Code gegen Tokens eintauschen.

// app/callback/page.tsx 'use client' import { useEffect } from 'react' import { useRouter } from 'next/navigation' import { useAuris } from '@auris/nextjs' export default function CallbackPage() { const { isAuthenticated, isLoading, error } = useAuris() const router = useRouter() useEffect(() => { // AurisProvider führt den Code-Austausch beim Mount automatisch durch. // Sobald die Sitzung bereit ist, die Callback-Seite verlassen. if (!isLoading && isAuthenticated) { router.replace('/dashboard') } }, [isLoading, isAuthenticated, router]) if (error) { return <p>Login fehlgeschlagen: {error.message}</p> } return <p>Login wird abgeschlossen...</p> }

Schritt 6: Benutzerinformationen anzeigen

'use client' import { useUser, useAuris } from '@auris/nextjs' export default function DashboardPage() { const { user, isLoading } = useUser() const { isAuthenticated } = useAuris() if (isLoading) return <p>Laden...</p> if (!isAuthenticated) return <p>Du bist nicht angemeldet.</p> return ( <div> <h1>Willkommen, {user?.firstName ?? user?.email}</h1> <p>E-Mail: {user?.email}</p> <p>Rollen: {user?.roles?.join(', ')}</p> </div> ) }

Schritt 7: Abmelde-Button hinzufügen

'use client' import { useAuris } from '@auris/nextjs' export function LogoutButton() { const { logout } = useAuris() return ( <button onClick={() => logout()}> {/* Post-Logout-Weiterleitung im Router behandeln */} Abmelden </button> ) }

Umgebungsvariablen

Speichere deine Auris-Konfiguration in Umgebungsvariablen, nicht im Quellcode:

# .env.local # Clientseitig: von AurisProvider im Browser-Bundle verwendet NEXT_PUBLIC_AURIS_DOMAIN=https://auth.ihredomain.com NEXT_PUBLIC_AURIS_CLIENT_ID=ihre_client_id_hier # Serverseitig: von aurisMiddleware() und getSession() verwendet — niemals an den Browser exponiert AURIS_DOMAIN=https://auth.ihredomain.com AURIS_CLIENT_ID=ihre_client_id_hier # Nur für serverseitige M2M-Clients (niemals im Browser exponieren) AURIS_CLIENT_SECRET=ihr_client_secret_hier # Für JWT-Verifizierung ohne Netzwerkaufruf (optional, empfohlen) AURIS_JWKS_URL=https://auth.ihredomain.com/.well-known/jwks.json

Umgebungsvariablen mit dem Präfix NEXT_PUBLIC_ werden in das Browser-Bundle eingebettet und sind öffentlich. Nur domain und clientId sollten öffentlich sein. Lege niemals AURIS_CLIENT_SECRET mit dem Präfix NEXT_PUBLIC_ offen.


Nächste Schritte

Jetzt, da du einen grundlegenden Login-Flow hast, erkunde die für deine Anwendung relevantesten Funktionen:

Authentifizierungsmethoden

Autorisierung

Benutzerverwaltung

SDKs und API