Documentatie
Openbare API
De 2FA-accounts van een team opvragen en hun TOTP-codes ophalen vanuit je eigen tools, met een eigen token.
Met de API kan een bevoegde client de 2FA-accounts van een team opvragen en hun TOTP-codes ophalen.
export API_URL="https://app.shareauth.net"
export API_TOKEN="1|je-sanctum-token"
Gebruik in productie uitsluitend HTTPS. Verzoeken en antwoorden zijn in JSON-formaat.
Authenticatie
Maak een Sanctum-token aan:
curl -X POST "$API_URL/api/tokens/create" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"email":"[email protected]",
"password":"wachtwoord",
"device_name":"mijn-connector",
"code":"123456"
}'
Het veld code is alleen vereist als het account zijn aanmelding met 2FA beschermt. recovery_code kan die vervangen.
Antwoord:
{
"token": "1|abcdefghijklmnopqrstuvwxyz",
"user": {
"id": 12,
"name": "Alice",
"email": "[email protected]"
}
}
Bewaar dit token als een geheim en stuur het daarna mee in de header:
Authorization: Bearer 1|abcdefghijklmnopqrstuvwxyz
Accept: application/json
Actief team
De teruggegeven codes horen altijd bij het actieve team van de gebruiker.
De bereikbare teams opvragen:
curl "$API_URL/api/v1/teams" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Accept: application/json"
Van actief team wisselen:
curl -X POST "$API_URL/api/v1/teams/42/switch" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Accept: application/json"
De 2FA-accounts opvragen
curl "$API_URL/api/v1/secrets" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Accept: application/json"
Ingekort antwoord:
{
"data": [
{
"id": 7,
"name": "GitHub production",
"issuer": "GitHub",
"digits": 6,
"period": 30
}
],
"meta": {
"total": 1,
"limit": 10,
"remaining": 9
}
}
De TOTP-seed zit nooit in de antwoorden.
Een code ophalen
Gebruik de identificatie die de lijst teruggeeft:
curl -X POST "$API_URL/api/v1/secrets/7/generate" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Accept: application/json"
Antwoord:
{
"data": {
"secret_name": "GitHub production",
"code": "123456",
"next_code": "654321",
"time_remaining": 18,
"period": 30,
"expires_at": "2026-08-13T12:00:30.000000Z"
}
}
Elke generatie wordt vastgelegd in het toegangslogboek van het team. Log de code niet aan de clientzijde.
Fouten
| Status | Betekenis |
|---|---|
401 |
token ontbreekt of is ongeldig |
403 |
toegang geweigerd of geheim buiten het actieve team |
404 |
bron niet gevonden |
422 |
ongeldige gegevens, ontbrekend team of code niet te genereren |
429 |
limiet van 60 verzoeken per minuut overschreden |
Een validatiefout heeft doorgaans deze vorm:
{
"message": "The given data was invalid.",
"errors": {
"email": ["The email field is required."]
}
}
MCP-connector
De kant-en-klare connector voor ChatGPT, Codex, Claude en andere MCP-clients is beschreven in mcp-server/README.md, in de repository van het project.