Authentifizierung
Die Gruppen-Admin API verwendet Laravel Sanctum für die Authentifizierung mit Bearer Tokens.
POST
/api/login
Benutzer anmelden und API-Token erhalten
Request Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
username |
string | Ja | Benutzername des Accounts |
password |
string | Ja | Passwort des Accounts |
Request Beispiel
curl -X POST https://kerzenheim.gruppen-admin.de/api/login \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"username": "admin",
"password": "your-password"
}'
Response (Erfolg)
{
"success": true,
"message": "success",
"data": {
"id": 1,
"username": "admin",
"email": "admin@kerzenheim.gruppen-admin.de",
"firstname": "Admin",
"lastname": "Administrator",
"api_key": "1|abcd1234efgh5678ijkl9012mnop3456qrst7890uvwx"
},
"api_key": {
"accessToken": {
"name": "API-Key",
"abilities": ["*"],
"tokenable_id": 1,
"tokenable_type": "App\\Models\\User",
"updated_at": "2026-03-11T12:00:00.000000Z",
"created_at": "2026-03-11T12:00:00.000000Z",
"id": 1
},
"plainTextToken": "1|abcd1234efgh5678ijkl9012mnop3456qrst7890uvwx"
}
}
Response (Fehler)
{
"success": false,
"message": "Login Fail, pls check password"
}
Wichtig: Speichern Sie den
plainTextToken sicher ab.
Dieser wird für alle weiteren API-Requests benötigt.
GET
/api/user
Daten des aktuell angemeldeten Benutzers abrufen
Request Header
Authorization: Bearer YOUR_API_TOKEN
Accept: application/json
Request Beispiel
curl -X GET https://kerzenheim.gruppen-admin.de/api/user \
-H "Authorization: Bearer 1|abcd1234efgh5678ijkl9012mnop3456qrst7890uvwx" \
-H "Accept: application/json"
Response
{
"id": 1,
"username": "admin",
"email": "admin@kerzenheim.gruppen-admin.de",
"firstname": "Admin",
"lastname": "Administrator",
"gender_id": 1,
"type_id": 1,
"phonenumber": "+49 123 456789",
"phonenumber_mobile": "+49 170 1234567",
"street": "Hauptstraße",
"housenumber": "1",
"zip": "12345",
"city": "Kerzenheim",
"is_vegetarian": false,
"can_swimm": true,
"created_at": "2026-01-01T10:00:00.000000Z",
"updated_at": "2026-03-11T12:00:00.000000Z"
}
Token verwenden
Nach erfolgreichem Login verwenden Sie den erhaltenen Token für alle authentifizierten Requests:
1. Token im Authorization Header
Authorization: Bearer YOUR_PLAIN_TEXT_TOKEN
2. Beispiel-Request mit Token
curl -X GET https://kerzenheim.gruppen-admin.de/api/user \
-H "Authorization: Bearer 1|abcd1234efgh5678ijkl9012mnop3456qrst7890uvwx" \
-H "Accept: application/json"
$token = '1|abcd1234efgh5678ijkl9012mnop3456qrst7890uvwx';
$client = new GuzzleHttp\Client([
'base_uri' => 'https://kerzenheim.gruppen-admin.de/api/',
'headers' => [
'Authorization' => 'Bearer ' . $token,
'Accept' => 'application/json',
]
]);
$response = $client->request('GET', 'user');
$data = json_decode($response->getBody(), true);
const token = '1|abcd1234efgh5678ijkl9012mnop3456qrst7890uvwx';
const response = await fetch('https://kerzenheim.gruppen-admin.de/api/user', {
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`,
'Accept': 'application/json'
}
});
const data = await response.json();
Token-Verwaltung
Token-Lebensdauer
API-Tokens haben standardmäßig keine Ablaufzeit. Sie bleiben gültig bis:
- Der Token explizit widerrufen wird
- Der Benutzer sein Passwort ändert
- Der Benutzer deaktiviert wird
Best Practices
Sicherheit:
- Speichern Sie Tokens niemals im Frontend (LocalStorage, Cookies ohne HttpOnly)
- Übertragen Sie Tokens nur über HTTPS
- Verwenden Sie separate Tokens für verschiedene Anwendungen
- Widerrufen Sie Tokens, wenn sie nicht mehr benötigt werden
Token Widerrufen
Um einen Token zu widerrufen, löschen Sie ihn aus der Datenbank:
// Im Laravel Backend
$user->currentAccessToken()->delete();
// Oder alle Tokens des Benutzers
$user->tokens()->delete();
Authentifizierungs-Fehler
| HTTP Status | Bedeutung | Lösung |
|---|---|---|
401 |
Unauthorized - Token fehlt oder ungültig | Prüfen Sie, ob der Authorization Header korrekt gesetzt ist |
403 |
Forbidden - Keine Berechtigung für diese Ressource | Benutzer hat nicht die erforderlichen Rechte |
419 |
CSRF Token Mismatch | Fügen Sie Accept: application/json Header hinzu |
429 |
Too Many Requests - Rate Limit überschritten | Warten Sie bis zum Reset (siehe X-RateLimit-Reset Header) |
Beispiel: 401 Unauthorized
{
"message": "Unauthenticated."
}
API testen
Sie können die API mit verschiedenen Tools testen:
1. Postman
Importieren Sie diese Umgebungsvariablen:
{
"base_url": "https://kerzenheim.gruppen-admin.de/api",
"api_token": "YOUR_TOKEN_HERE"
}
2. Insomnia
Nutzen Sie Bearer Token Authentication im Auth-Tab
3. Browser DevTools
// In der Browser-Console
fetch('https://kerzenheim.gruppen-admin.de/api/user', {
headers: {
'Authorization': 'Bearer YOUR_TOKEN',
'Accept': 'application/json'
}
})
.then(r => r.json())
.then(console.log);