AlfyChat
Langage :
Référence REST/Auth & RGPD

Auth & RGPD

Inscription, connexion, refresh token, révocation de session et droits RGPD (export, suppression).

Authentification — /api/auth

POST
/api/auth/register

Créer un compte — body: { username, email, password }

POST
/api/auth/login

Connexion — body: { email, password } → { token, refreshToken, user }

POST
/api/auth/refresh

Renouveler le JWT — body: { refreshToken } → { token, refreshToken }

POST
/api/auth/logout

Révoquer la session active — body: { refreshToken }

POST /api/auth/register
js
const res = await fetch('https://gateway.alfychat.app/api/auth/register', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    username: 'alice',
    email:    'alice@example.com',
    password: 'My$ecureP@ssword1',
  }),
});
const { token, refreshToken, user } = await res.json();
Réponse POST /api/auth/login
json
{
  "token":        "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "refreshToken": "a1b2c3d4e5f67890...",
  "user": {
    "id":         "u1a2b3c4-...",
    "username":   "alice",
    "email":      "alice@example.com",
    "avatarUrl":  "https://media.alfychat.app/avatars/...",
    "isVerified": true,
    "role":       "user"
  }
}
POST /api/auth/refresh
js
const res = await fetch('https://gateway.alfychat.app/api/auth/refresh', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ refreshToken: storedToken }),
});
const { token, refreshToken } = await res.json();

Durée de vie des tokens

Le JWT expire après 15 minutes. Le refreshToken est valable 1 an (365 jours). Appelez /api/auth/refreshavant l'expiration du JWT pour éviter de déconnecter l'utilisateur.

RGPD — /api/rgpd

GET
/api/rgpd/export

Exporter toutes vos données personnelles — retourne un fichier ZIP

DELETE
/api/rgpd/account

Supprimer définitivement votre compte et toutes vos données

Export de données RGPD
js
const res = await fetch('https://gateway.alfychat.app/api/rgpd/export', {
  headers: { 'Authorization': `Bearer ${token}` },
});
const blob = await res.blob();
const url  = URL.createObjectURL(blob);
// Le navigateur téléchargera le ZIP automatiquement

Suppression irréversible

DELETE /api/rgpd/account est irréversible. Toutes les données sont supprimées dans les 30 jours conformément au RGPD.