Skip to content
Cette page a été générée et traduite avec l'aide de l'IA. Si vous remarquez des inexactitudes, n'hésitez pas à contribuer. Modifier sur GitHub

Authentification

OpenPR utilise les JWT (JSON Web Tokens) pour l'authentification des utilisateurs et les jetons bot pour l'accès des assistants IA et du serveur MCP.

Authentification utilisateur (JWT)

S'enregistrer

Créer un nouveau compte :

bash
curl -X POST http://localhost:8080/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "name": "John Doe",
    "password": "SecurePassword123"
  }'

Réponse :

json
{
  "code": 0,
  "message": "success",
  "data": {
    "user": {
      "id": "uuid",
      "email": "[email protected]",
      "name": "John Doe",
      "role": "user"
    },
    "access_token": "eyJ...",
    "refresh_token": "eyJ..."
  }
}

Premier utilisateur

Le premier utilisateur enregistré reçoit automatiquement le rôle admin. Tous les utilisateurs suivants sont user par défaut.

Connexion

bash
curl -X POST http://localhost:8080/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "password": "SecurePassword123"
  }'

La réponse inclut access_token, refresh_token et les informations utilisateur avec role.

Utiliser le jeton d'accès

Incluez le jeton d'accès dans l'en-tête Authorization pour toutes les requêtes authentifiées :

bash
curl -H "Authorization: Bearer eyJ..." \
  http://localhost:8080/api/workspaces

Rafraîchissement de jeton

Quand le jeton d'accès expire, utilisez le jeton de rafraîchissement pour obtenir une nouvelle paire :

bash
curl -X POST http://localhost:8080/api/auth/refresh \
  -H "Content-Type: application/json" \
  -d '{"refresh_token": "eyJ..."}'

Obtenir l'utilisateur actuel

bash
curl -H "Authorization: Bearer eyJ..." \
  http://localhost:8080/api/auth/me

Retourne le profil de l'utilisateur actuel incluant role (admin/user).

Configuration des jetons

Les durées de vie des jetons JWT sont configurées via des variables d'environnement :

VariableDéfautDescription
JWT_SECRETchange-me-in-productionClé secrète pour signer les jetons
JWT_ACCESS_TTL_SECONDS2592000 (30 jours)Durée de vie du jeton d'accès
JWT_REFRESH_TTL_SECONDS604800 (7 jours)Durée de vie du jeton de rafraîchissement

Sécurité en production

Définissez toujours JWT_SECRET avec une valeur forte et aléatoire en production. La valeur par défaut est non sécurisée.

Authentification par jeton bot

Les jetons bot fournissent l'authentification pour les assistants IA et les outils automatisés. Ils sont limités à l'espace de travail et utilisent le préfixe opr_.

Créer des jetons bot

Les jetons bot sont gérés via l'interface de paramètres de l'espace de travail ou l'API :

bash
curl -X POST http://localhost:8080/api/workspaces/<workspace_id>/bots \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <admin_token>" \
  -d '{"name": "Claude Assistant"}'

Utiliser les jetons bot

Les jetons bot sont utilisés de la même façon que les jetons JWT :

bash
curl -H "Authorization: Bearer opr_abc123..." \
  http://localhost:8080/api/workspaces/<workspace_id>/projects

Propriétés des jetons bot

PropriétéDescription
Préfixeopr_
PortéeUn espace de travail
Type d'entitéCrée une entité utilisateur bot_mcp
PermissionsIdentiques au membre de l'espace de travail
Piste d'auditToutes les actions journalisées sous l'utilisateur bot

Résumé des points de terminaison d'authentification

Point de terminaisonMéthodeDescription
/api/auth/registerPOSTCréer un compte
/api/auth/loginPOSTConnexion et obtention des jetons
/api/auth/refreshPOSTRafraîchir la paire de jetons
/api/auth/meGETObtenir les informations de l'utilisateur actuel

Étapes suivantes

Released under the Apache-2.0 License.