Dokumentation

Öffentliche API

Die 2FA-Konten eines Teams auflisten und deren TOTP-Codes mit einem eigenen Token aus Ihren Werkzeugen abrufen.

Die API erlaubt einem berechtigten Client, die 2FA-Konten eines Teams aufzulisten und deren TOTP-Codes abzurufen.

export API_URL="https://app.shareauth.net"
export API_TOKEN="1|ihr-sanctum-token"

Verwenden Sie im Produktivbetrieb ausschließlich HTTPS. Anfragen und Antworten sind im JSON-Format.

Authentifizierung

Erzeugen Sie ein Sanctum-Token:

curl -X POST "$API_URL/api/tokens/create" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "email":"[email protected]",
    "password":"passwort",
    "device_name":"mein-konnektor",
    "code":"123456"
  }'

Das Feld code ist nur erforderlich, wenn das Konto seine Anmeldung mit 2FA schützt. recovery_code kann an seine Stelle treten.

Antwort:

{
  "token": "1|abcdefghijklmnopqrstuvwxyz",
  "user": {
    "id": 12,
    "name": "Alice",
    "email": "[email protected]"
  }
}

Behandeln Sie dieses Token wie ein Geheimnis und senden Sie es fortan im Kopfbereich mit:

Authorization: Bearer 1|abcdefghijklmnopqrstuvwxyz
Accept: application/json

Aktives Team

Die zurückgegebenen Codes gehören stets zum aktiven Team der Nutzerin oder des Nutzers.

Erreichbare Teams auflisten:

curl "$API_URL/api/v1/teams" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Accept: application/json"

Aktives Team wechseln:

curl -X POST "$API_URL/api/v1/teams/42/switch" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Accept: application/json"

2FA-Konten auflisten

curl "$API_URL/api/v1/secrets" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Accept: application/json"

Gekürzte Antwort:

{
  "data": [
    {
      "id": 7,
      "name": "GitHub production",
      "issuer": "GitHub",
      "digits": 6,
      "period": 30
    }
  ],
  "meta": {
    "total": 1,
    "limit": 10,
    "remaining": 9
  }
}

Der TOTP-Seed ist in keiner Antwort enthalten.

Einen Code abrufen

Verwenden Sie die von der Liste zurückgegebene Kennung:

curl -X POST "$API_URL/api/v1/secrets/7/generate" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Accept: application/json"

Antwort:

{
  "data": {
    "secret_name": "GitHub production",
    "code": "123456",
    "next_code": "654321",
    "time_remaining": 18,
    "period": 30,
    "expires_at": "2026-08-13T12:00:30.000000Z"
  }
}

Jede Erzeugung wird im Zugriffsprotokoll des Teams festgehalten. Protokollieren Sie den Code nicht auf der Clientseite.

Fehler

Status Bedeutung
401 Token fehlt oder ist ungültig
403 Zugriff verweigert oder Geheimnis außerhalb des aktiven Teams
404 Ressource nicht gefunden
422 ungültige Daten, fehlendes Team oder Code nicht erzeugbar
429 Grenze von 60 Anfragen pro Minute überschritten

Ein Validierungsfehler hat in der Regel diese Form:

{
  "message": "The given data was invalid.",
  "errors": {
    "email": ["The email field is required."]
  }
}

MCP-Konnektor

Der fertige Konnektor für ChatGPT, Codex, Claude und weitere MCP-Clients ist in mcp-server/README.md im Projekt-Repository dokumentiert.