Skip to main content

Authentication

Die common-api benutzt Laravel Sanctum (Personal Access Tokens) für alle API-Konsumenten. Webhooks von Weclapp werden über eine IP-Whitelist zugelassen (siehe Weclapp Webhooks).

Endpunkte

MethodePfadAuthBeschreibung
POST/api/v1/loginöffentlichLogin → Bearer Token
POST/api/v1/logoutSanctumToken revoken
GET/api/v1/userSanctumaktueller Nutzer

1. Login

curl -X POST https://api.bluesafety.dev/api/v1/login \
-H 'Content-Type: application/json' \
-d '{
"email": "name@bluesafety.com",
"password": "geheim"
}'

Response:

{
"access_token": "1|eyJhbGciOi...",
"token_type": "Bearer"
}

2. Token verwenden

Jeder Request unter auth:sanctum braucht den Authorization: Bearer <token>-Header.

curl -X GET https://api.bluesafety.dev/api/v1/user \
-H 'Authorization: Bearer 1|eyJhbGciOi...'

3. Logout

curl -X POST https://api.bluesafety.dev/api/v1/logout \
-H 'Authorization: Bearer 1|eyJhbGciOi...'

Aus Code aufrufen

const res = await fetch('https://api.bluesafety.dev/api/v1/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email, password }),
});
const { access_token } = await res.json();

// nachfolgende Calls
await fetch('https://api.bluesafety.dev/api/v1/grenke/index', {
headers: { Authorization: `Bearer ${access_token}` },
});

Token-TTL & Revocation

Sanctum-Token haben standardmäßig kein Ablaufdatum. Konfiguriert wird das in config/sanctum.php (expiration). Token werden auf der DB-Tabelle personal_access_tokens abgelegt und können per tokens()->delete() direkt revoked werden.

Im Frontend gilt: niemals Token in localStorage ablegen, wenn die Seite anfällig für XSS ist. Stattdessen httpOnly-Cookie via Backend-Proxy (so macht's auch der common-docu Backend-Server für die geschützten Markdown-Bereiche).