---
title: "sdk/php"
description: "PHP-8.1+-Server-SDK für netzwerklose JWT-Prüfung,PSR-7-Anfrage-Authentifizierung und Webhook-Signaturvalidierung."
locale: "de"
---

> Documentation Index
> Fetch the relevant documentation index at: https://vonvon.id/de/sdks/llms.txt
> Use this file to discover all available pages before exploring further.

# sdk/php

## Zustand

Implementiert und lokal verifiziert. Die echteIdP-Round-Trip-Verifizierung (JWKS-Abruf, Token-Signierung/Prüfung gegeneine Live-Vonvon-Instanz) wurde noch nicht durchgeführt und muss vor demProduktionseinsatz abgeschlossen werden.

Registry-Status: UNPUBLISHED. Installieren Sie dieses SDK nur aus einem Checkout des Repository-Quellcodes; verwenden Sie keine externe Paket-Registry.

Die Anfrageauthentifizierung akzeptiert standardmäßig nur Bearer. Ein anwendungseigenes JWT-Cookie wird nur gelesen, wenn sein exakter Name konfiguriert ist. Das opake Core-Cookie \_\_Host-vonvon.rt.\* wird niemals durchsucht oder lokal verifiziert; tauschen Sie es aus, indem Sie den vollständigen Cookie-Header ohne Weiterleitungen an den exakt gleichursprünglichen Endpunkt POST /v1/sessions/token weiterleiten, und akzeptieren Sie nur eine Antwort, die ausschließlich das Feld token enthält.

## Installieren

PHP 8.1+ erforderlich. Kern-Abhängigkeiten werden automatisch von Composerbezogen.

```shell
{
  "repositories": [
{ "type": "path", "url": "../vonvon/sdk/php" }
  ],
  "require": {
"vonvon/vonvon": "dev-main"
  }
}

# composer update vonvon/vonvon
```

## Schnellstart

```php
use Vonvon\VonvonClient;
use Vonvon\Exception\TokenException;
use Vonvon\Exception\JwksException;

$vonvon = new VonvonClient([
'issuer'   => 'https://vonvon.id',
'audience' => 'your-client-id',
'cache'    => $psrSimpleCacheImpl, // PSR-16; null disables JWKS cache
]);

try {
$claims = $vonvon->verifyToken($jwtString);
echo $claims->sub();    // user ID
echo $claims->scope();  // "openid profile email"
echo implode(',', $claims->amr()); // "phr" / "otp"
} catch (TokenException $e) {
http_response_code(401);
} catch (JwksException $e) {
http_response_code(503);
}
```

## PSR-7-Anfrage authentifizieren

```php
$result = $vonvon->authenticateRequest($psrRequest);

if ($result->isAuthenticated()) {
$userId = $result->claims()->sub();
} else {
// $result->reason() for server-side logs only
http_response_code(401);
}

$token = $vonvon->exchangeSessionToken(
'https://app.example.com/account',
$psrRequest->getHeaderLine('Cookie'),
$sessionTokenTransport,
);
```

## Webhook prüfen

```php
use Vonvon\Exception\WebhookException;

try {
$payload = $vonvon->verifyWebhook($psrRequest, 'whsec_...');
$type = $payload->type();  // "user.created"
$data = $payload->data();
} catch (WebhookException $e) {
http_response_code(400);
}
```

## VonvonClient-Optionen

| Schlüssel | Standard | Beschreibung |
| --- | --- | --- |
| `issuer` | erforderlich | Vonvon-Issuer-URI |
| `audience` | `null` | Erwartetes audience; null überspringt die Validierung |
| `cache` | `null` | PSR-16-CacheInterface für JWKS-Caching |
| `jwks_ttl` | `3600` | JWKS-Cache-TTL in Sekunden |
| `clock_leeway` | `0` | JWT-Taktversatztoleranz in Sekunden |
| `cookie_name` | `disabled` | Name des anwendungseigenen JWT-Cookies; nur bei expliziter Konfiguration aktiviert |

## VonvonClient-Methoden

| Methode | Gibt zurück | Beschreibung |
| --- | --- | --- |
| `verifyToken(string $token)` | `Claims` | JWT-String prüfen; wirft bei Fehler Exception |
| `authenticateRequest(ServerRequestInterface $request)` | `AuthResult` | PSR-7-Anfrage authentifizieren; wirft keine Exception |
| `verifyWebhook(ServerRequestInterface $request, string $secret)` | `WebhookPayload` | Webhook-Signatur validieren; wirft bei Fehler Exception |
| `refreshJwks()` | `void` | JWKS-Cache erzwungen aktualisieren |

## Plattformhinweise

- Verwendet `firebase/php-jwt` für ES256/RS256-Prüfung. HS256 und`none`-Algorithmus werden abgelehnt.
- Erfordert ein PSR-7-Anfrageobjekt für `authenticateRequest` und`verifyWebhook`. Framework-native Anfragen bei Bedarf mit einerPSR-7-Bridge konvertieren.
- Ausnahmehierarchie: `VonvonException` -&gt; `TokenException`,`JwksException`, `WebhookException`.

Source: https://vonvon.id/de/sdks/php/index.mdx
