Documentation

API publique

Consultez les comptes 2FA d’une équipe et récupérez leurs codes TOTP depuis vos propres outils, avec un jeton dédié.

L’API permet à un client autorisé de consulter les comptes 2FA d’une équipe et de récupérer leurs codes TOTP.

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

Utilisez uniquement HTTPS en production. Les requêtes et réponses sont au format JSON.

Authentification

Créez un token Sanctum :

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

Le champ code est requis uniquement si le compte protège sa connexion par 2FA. recovery_code peut le remplacer.

Réponse :

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

Conservez ce token comme un secret et transmettez-le ensuite dans l’en-tête :

Authorization: Bearer 1|abcdefghijklmnopqrstuvwxyz
Accept: application/json

Équipe active

Les codes retournés appartiennent toujours à l’équipe active de l’utilisateur.

Lister les équipes accessibles :

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

Changer d’équipe active :

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

Lister les comptes 2FA

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

Réponse abrégée :

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

La graine TOTP n’est jamais incluse dans les réponses.

Récupérer un code

Utilisez l’identifiant retourné par la liste :

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

Réponse :

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

Chaque génération est enregistrée dans le journal d’accès de l’équipe. Ne journalisez pas le code côté client.

Erreurs

Statut Signification
401 token absent ou invalide
403 accès refusé ou secret hors de l’équipe active
404 ressource introuvable
422 données invalides, équipe absente ou code impossible à générer
429 limite de 60 requêtes par minute dépassée

Une erreur de validation suit généralement ce format :

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

Connecteur MCP

Le connecteur prêt à l’emploi pour ChatGPT, Codex, Claude et les autres clients MCP est documenté dans mcp-server/README.md, dans le dépôt du projet.