Download the PHP package authn-sh/sdk-php without Composer
On this page you can find all versions of the php package authn-sh/sdk-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download authn-sh/sdk-php
More information about authn-sh/sdk-php
Files in authn-sh/sdk-php
Package sdk-php
Short Description PHP backend SDK for authn.sh — BAPI client, JWT verification, and webhook signature verification.
License AGPL-3.0-only
Homepage https://authn.sh
Informations about the package sdk-php
authn-sh/sdk-php
PHP backend SDK for authn.sh — call the Backend API (BAPI), verify session JWTs, and verify webhook signatures from server-side PHP. The Laravel integration lives in the separate authn-sh/sdk-php-laravel package.
Status: 0.1.x pre-release. APIs may change before
1.0.
Requirements
- PHP 8.2+
- A PSR-18 HTTP client (Guzzle, Symfony HttpClient, etc.) and PSR-17 factories. The SDK auto-discovers them via
php-http/discovery, so installingguzzlehttp/guzzle(or any PSR-18 client) is enough. - A PSR-16 cache (optional, for the JWT verifier). Without one the JWKS document is re-fetched on every verify.
Install
If you don't already have a PSR-18 client in your project:
BAPI client
Resource managers: users(), sessions(), invitations(), allowlistIdentifiers(), blocklistIdentifiers(), redirectUrls(), instance(), webhookEndpoints(), organizations(), roles(), permissions(), oauthProviders(), enterpriseConnections(), enterpriseAccounts(), smsTemplates(), phoneNumbers(), externalAccounts(), passkeys(), appearance(), localization().
Organization sub-managers are accessed via $client->organizations():
Roles and permissions
Custom HTTP client / logger
Errors
Authn\Sdk\Http\ApiException— non-2xx responses;getStatusCode(),getErrors(),getErrorCode(),getTraceId(),getRawBody().Authn\Sdk\Http\AuthenticationException(401),Authn\Sdk\Http\ResourceNotFoundException(404),Authn\Sdk\Http\RateLimitExceededException(429, withgetRetryAfter()).Authn\Sdk\Http\NetworkException— connection-level failures.
Verify a session JWT
The verifier fetches the FAPI JWKS once and caches it (PSR-16). On an unknown kid it refreshes the JWKS once before failing.
Organization claim
When the session JWT carries an org claim, $claims->organization is populated as a typed Organization object:
Passkey claims
$claims->passkeyVerified is true when the current session was authenticated by a passkey first-factor with userVerification = required (parsed from the pkv JWT claim). $claims->passkeyCount is the snapshot of the user's verified-passkey count at session creation (pkc claim).
Verify a webhook
Replay protection is on by default with a 5-minute tolerance — pass toleranceSeconds: to widen or narrow it.
Development
CI runs the full suite on PHP 8.2, 8.3, 8.4, and 8.5.
License
AGPL-3.0-only.
All versions of sdk-php with dependencies
ext-json Version *
php-http/discovery Version ^1.19
psr/http-client Version ^1.0
psr/http-factory Version ^1.0
psr/http-message Version ^1.1 || ^2.0
psr/log Version ^3.0
psr/simple-cache Version ^3.0
web-token/jwt-library Version ^4.0