@aurabase/auth 0.6.0 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.cjs +182 -37
- package/dist/index.d.cts +135 -3
- package/dist/index.d.ts +135 -3
- package/dist/index.js +182 -37
- package/package.json +4 -4
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseService, AuraResponse, AdminUser, AdminCreateUserRequest, AdminUpdateUserRequest, GenerateLinkType, GenerateLinkResult, UserStats, IdentityInfo, AdminSessionInfo, AuditLogEntry, AuthSettings, AuthSettingsUpdate, EmailTemplateUpdate, AuraClientLike, AuthChangePayload, SignUpRequest, LoginResponse, SignInRequest, OAuthSignInOptions, MagicLinkRequest, TokenPair, Session, User, SessionInfo, GetClaimsResult, UpdateUserRequest, PasswordResetRequest, MfaEnrollResponse, MfaVerifyRequest, MfaChallenge } from '@aurabase/core';
|
|
1
|
+
import { BaseService, AuraResponse, AdminUser, AdminCreateUserRequest, AdminUpdateUserRequest, GenerateLinkType, GenerateLinkResult, UserStats, IdentityInfo, AdminSessionInfo, AuditLogEntry, AuthSettings, AuthSettingsUpdate, EmailTemplateUpdate, AuraClientLike, AuthChangePayload, SignUpRequest, LoginResponse, SignInRequest, OAuthSignInOptions, OAuthSignInObjectOptions, MagicLinkRequest, TokenPair, Session, User, SessionInfo, GetClaimsResult, UpdateUserRequest, PasswordResetRequest, MfaEnrollResponse, MfaVerifyRequest, MfaChallenge } from '@aurabase/core';
|
|
2
2
|
|
|
3
3
|
declare class AuthAdminService extends BaseService {
|
|
4
4
|
/**
|
|
@@ -7,31 +7,59 @@ declare class AuthAdminService extends BaseService {
|
|
|
7
7
|
* `services/aura-gateway/src/middleware/project_subdomain.rs`).
|
|
8
8
|
*/
|
|
9
9
|
private get prefix();
|
|
10
|
+
/**
|
|
11
|
+
* Liste les utilisateurs du projet, avec recherche (`search`) et pagination (`limit`, `offset`).
|
|
12
|
+
*/
|
|
10
13
|
listUsers(params?: {
|
|
11
14
|
limit?: number;
|
|
12
15
|
offset?: number;
|
|
13
16
|
search?: string;
|
|
14
17
|
}): Promise<AuraResponse<AdminUser[]>>;
|
|
18
|
+
/** Lit un utilisateur par son identifiant. */
|
|
15
19
|
getUser(userId: string): Promise<AuraResponse<AdminUser>>;
|
|
20
|
+
/**
|
|
21
|
+
* Crée un utilisateur sans passer par l'inscription publique (e-mail, mot de passe, métadonnées, rôle).
|
|
22
|
+
*/
|
|
16
23
|
createUser(data: AdminCreateUserRequest): Promise<AuraResponse<AdminUser>>;
|
|
24
|
+
/** Met à jour un utilisateur : seuls les champs fournis changent. */
|
|
17
25
|
updateUser(userId: string, data: AdminUpdateUserRequest): Promise<AuraResponse<AdminUser>>;
|
|
26
|
+
/** Supprime un utilisateur. */
|
|
18
27
|
deleteUser(userId: string): Promise<AuraResponse<null>>;
|
|
28
|
+
/** Bannit un utilisateur : il ne peut plus se connecter. */
|
|
19
29
|
banUser(userId: string): Promise<AuraResponse<null>>;
|
|
30
|
+
/** Lève le bannissement d'un utilisateur. */
|
|
20
31
|
unbanUser(userId: string): Promise<AuraResponse<null>>;
|
|
32
|
+
/**
|
|
33
|
+
* Génère un lien à usage unique pour un utilisateur (`'magic'`, `'recovery'` ou `'invite'`) et renvoie `{ link, token }`.
|
|
34
|
+
*/
|
|
21
35
|
generateLink(userId: string, type: GenerateLinkType): Promise<AuraResponse<GenerateLinkResult>>;
|
|
36
|
+
/**
|
|
37
|
+
* Statistiques des utilisateurs : total, vérifiés, bannis, avec MFA et nouveaux sur 7 jours.
|
|
38
|
+
*/
|
|
22
39
|
getUserStats(): Promise<AuraResponse<UserStats>>;
|
|
40
|
+
/** Liste les identités liées à un utilisateur (fournisseurs OAuth, e-mail). */
|
|
23
41
|
listUserIdentities(userId: string): Promise<AuraResponse<IdentityInfo[]>>;
|
|
42
|
+
/**
|
|
43
|
+
* Liste les sessions actives de tous les utilisateurs, filtrables par `userId`, avec pagination.
|
|
44
|
+
*/
|
|
24
45
|
listSessions(params?: {
|
|
25
46
|
userId?: string;
|
|
26
47
|
limit?: number;
|
|
27
48
|
offset?: number;
|
|
28
49
|
}): Promise<AuraResponse<AdminSessionInfo[]>>;
|
|
50
|
+
/** Révoque une session par son identifiant. */
|
|
29
51
|
revokeSession(sessionId: string): Promise<AuraResponse<null>>;
|
|
52
|
+
/**
|
|
53
|
+
* Lit le journal d'audit (action, adresse IP, agent utilisateur, date), filtrable par `userId`, avec pagination.
|
|
54
|
+
*/
|
|
30
55
|
getAuditLog(params?: {
|
|
31
56
|
userId?: string;
|
|
32
57
|
limit?: number;
|
|
33
58
|
offset?: number;
|
|
34
59
|
}): Promise<AuraResponse<AuditLogEntry[]>>;
|
|
60
|
+
/**
|
|
61
|
+
* Lit les réglages d'authentification du projet. Les secrets (mot de passe SMTP, clés) ne sont jamais renvoyés.
|
|
62
|
+
*/
|
|
35
63
|
getSettings(): Promise<AuraResponse<AuthSettings>>;
|
|
36
64
|
/**
|
|
37
65
|
* Met à jour les réglages auth du projet (fusion partielle : seuls les champs fournis
|
|
@@ -49,12 +77,17 @@ declare class AuthAdminService extends BaseService {
|
|
|
49
77
|
* renvoyez donc pas tel quel un objet lu par {@link getSettings}.
|
|
50
78
|
*/
|
|
51
79
|
updateSettings(data: AuthSettingsUpdate): Promise<AuraResponse<AuthSettings>>;
|
|
80
|
+
/** Liste les modèles d'e-mail d'authentification du projet. */
|
|
52
81
|
listEmailTemplates(): Promise<AuraResponse<Record<string, unknown>[]>>;
|
|
82
|
+
/** Lit le modèle d'e-mail d'un type donné (par exemple confirmation, récupération). */
|
|
53
83
|
getEmailTemplate(type: string): Promise<AuraResponse<Record<string, unknown>>>;
|
|
84
|
+
/** Remplace le contenu du modèle d'e-mail d'un type donné. */
|
|
54
85
|
updateEmailTemplate(type: string, data: EmailTemplateUpdate): Promise<AuraResponse<Record<string, unknown>>>;
|
|
86
|
+
/** Supprime le modèle personnalisé d'un type d'e-mail. */
|
|
55
87
|
deleteEmailTemplate(type: string): Promise<AuraResponse<{
|
|
56
88
|
message: string;
|
|
57
89
|
}>>;
|
|
90
|
+
/** Envoie un e-mail de test avec le modèle d'un type à l'adresse `to_email`. */
|
|
58
91
|
testEmailTemplate(type: string, body: {
|
|
59
92
|
to_email: string;
|
|
60
93
|
}): Promise<AuraResponse<null>>;
|
|
@@ -204,6 +237,10 @@ declare class AuthService extends BaseService {
|
|
|
204
237
|
* sera jamais adopté.
|
|
205
238
|
*/
|
|
206
239
|
private get _oauthInitiatedKey();
|
|
240
|
+
/**
|
|
241
|
+
* Écoute les changements d'état de la session (`SIGNED_IN`, `SIGNED_OUT`, `TOKEN_REFRESHED`, `USER_UPDATED`,
|
|
242
|
+
* `MFA_CHALLENGE`…). Renvoie de quoi se désabonner : `unsubscribe()` ou `data.subscription.unsubscribe()`.
|
|
243
|
+
*/
|
|
207
244
|
onAuthStateChange(callback: AuthStateCallback): {
|
|
208
245
|
unsubscribe: () => void;
|
|
209
246
|
data: {
|
|
@@ -213,12 +250,25 @@ declare class AuthService extends BaseService {
|
|
|
213
250
|
};
|
|
214
251
|
};
|
|
215
252
|
private _emitEvent;
|
|
253
|
+
/**
|
|
254
|
+
* Crée un compte avec e-mail et mot de passe. Si le projet n'exige pas de confirmation et que le MFA n'est pas actif,
|
|
255
|
+
* la session est enregistrée et `SIGNED_IN` est émis ; sinon la réponse est un défi MFA (voir `isMfaChallenge`).
|
|
256
|
+
*/
|
|
216
257
|
signUp(req: SignUpRequest): Promise<AuraResponse<LoginResponse>>;
|
|
258
|
+
/**
|
|
259
|
+
* Connecte un utilisateur par e-mail et mot de passe. Enregistre la session et émet `SIGNED_IN` ;
|
|
260
|
+
* si le MFA est actif, renvoie un défi (`isMfaChallenge`) à compléter par `mfaVerify`.
|
|
261
|
+
*/
|
|
217
262
|
signInWithPassword(req: SignInRequest): Promise<AuraResponse<LoginResponse>>;
|
|
218
263
|
/**
|
|
219
264
|
* Démarre un flux OAuth : renvoie toujours `{ url }` (et redirige en plus le navigateur
|
|
220
265
|
* si un `window` existe).
|
|
221
266
|
*
|
|
267
|
+
* Accepte indifféremment la signature canonique :
|
|
268
|
+
* `signInWithOAuth('google', { redirectTo })`
|
|
269
|
+
* ou la signature objet compatible Supabase :
|
|
270
|
+
* `signInWithOAuth({ provider: 'google', options: { redirectTo } })`
|
|
271
|
+
*
|
|
222
272
|
* ### `options.queryParams` — contrat (N22)
|
|
223
273
|
*
|
|
224
274
|
* Les clés listées par {@link OAUTH_FORWARDABLE_QUERY_PARAMS} — `prompt`, `login_hint`,
|
|
@@ -248,11 +298,27 @@ declare class AuthService extends BaseService {
|
|
|
248
298
|
signInWithOAuth(provider: string, options?: OAuthSignInOptions): Promise<AuraResponse<{
|
|
249
299
|
url: string;
|
|
250
300
|
}>>;
|
|
301
|
+
signInWithOAuth(options: OAuthSignInObjectOptions): Promise<AuraResponse<{
|
|
302
|
+
url: string;
|
|
303
|
+
}>>;
|
|
304
|
+
/**
|
|
305
|
+
* Envoie un lien de connexion par e-mail (« magic link »). La session s'obtient ensuite par `verifyOtp({ type: 'magiclink' })`.
|
|
306
|
+
*/
|
|
251
307
|
signInWithMagicLink(req: MagicLinkRequest): Promise<AuraResponse<{
|
|
252
308
|
message: string;
|
|
253
309
|
}>>;
|
|
310
|
+
/**
|
|
311
|
+
* Crée une session anonyme (utilisateur sans e-mail), enregistrée et signalée par `SIGNED_IN`.
|
|
312
|
+
*/
|
|
254
313
|
signInAnonymously(): Promise<AuraResponse<TokenPair>>;
|
|
314
|
+
/**
|
|
315
|
+
* Déconnecte : révoque le jeton de rafraîchissement côté serveur s'il existe, vide la session locale et émet `SIGNED_OUT`.
|
|
316
|
+
*/
|
|
255
317
|
signOut(): Promise<AuraResponse<null>>;
|
|
318
|
+
/**
|
|
319
|
+
* Rafraîchit la session avec le jeton de rafraîchissement et émet `TOKEN_REFRESHED`.
|
|
320
|
+
* Les rafraîchissements concurrents sont fusionnés en un seul appel.
|
|
321
|
+
*/
|
|
256
322
|
refreshSession(): Promise<AuraResponse<TokenPair>>;
|
|
257
323
|
/**
|
|
258
324
|
* Session courante lue depuis le store (synchrone en pratique, pas d'appel réseau).
|
|
@@ -270,6 +336,10 @@ declare class AuthService extends BaseService {
|
|
|
270
336
|
access_token: string | null;
|
|
271
337
|
user: User | null;
|
|
272
338
|
}>;
|
|
339
|
+
/**
|
|
340
|
+
* Installe une session à partir d'un jeton d'accès et d'un jeton de rafraîchissement existants (par exemple reçus d'un serveur).
|
|
341
|
+
* Un jeton d'accès expiré est rafraîchi ; une session invalide est refusée et l'état précédent est restauré.
|
|
342
|
+
*/
|
|
273
343
|
setSession(accessToken: string, refreshToken: string): Promise<AuraResponse<User>>;
|
|
274
344
|
/**
|
|
275
345
|
* Échange le code d'autorisation PKCE contre une session.
|
|
@@ -288,8 +358,15 @@ declare class AuthService extends BaseService {
|
|
|
288
358
|
* récupération de mot de passe, `?code=…&type=recovery` — voir `_detectSessionInUrl`).
|
|
289
359
|
*/
|
|
290
360
|
private _exchangeCode;
|
|
361
|
+
/**
|
|
362
|
+
* Liste les sessions de l'utilisateur connecté (appareil, adresse IP, dates) ; `is_current` repère la session courante.
|
|
363
|
+
*/
|
|
291
364
|
listSessions(): Promise<AuraResponse<SessionInfo[]>>;
|
|
365
|
+
/** Révoque une session de l'utilisateur connecté par son identifiant. */
|
|
292
366
|
revokeSession(sessionId: string): Promise<AuraResponse<null>>;
|
|
367
|
+
/**
|
|
368
|
+
* Déconnecte l'utilisateur partout : révoque toutes ses sessions, vide la session locale et émet `SIGNED_OUT`.
|
|
369
|
+
*/
|
|
293
370
|
revokeAllSessions(): Promise<AuraResponse<{
|
|
294
371
|
message: string;
|
|
295
372
|
}>>;
|
|
@@ -304,7 +381,9 @@ declare class AuthService extends BaseService {
|
|
|
304
381
|
* (`skipAuthRefresh`, aucun refresh ni retry-401 sur le store). Le backend
|
|
305
382
|
* applique l'isolation projet native : un token d'un AUTRE projet → 403.
|
|
306
383
|
*/
|
|
307
|
-
getUser(jwt?: string): Promise<AuraResponse<User
|
|
384
|
+
getUser(jwt?: string): Promise<AuraResponse<User & {
|
|
385
|
+
user: User;
|
|
386
|
+
}>>;
|
|
308
387
|
/**
|
|
309
388
|
* Vérifie et décode les claims d'un JWT.
|
|
310
389
|
*
|
|
@@ -335,17 +414,59 @@ declare class AuthService extends BaseService {
|
|
|
335
414
|
issuer?: string;
|
|
336
415
|
audience?: string;
|
|
337
416
|
}): Promise<AuraResponse<GetClaimsResult>>;
|
|
417
|
+
/**
|
|
418
|
+
* Supprime le compte de l'utilisateur connecté après confirmation par son mot de passe, puis vide la session locale.
|
|
419
|
+
*/
|
|
338
420
|
deleteUser(password: string): Promise<AuraResponse<null>>;
|
|
421
|
+
/**
|
|
422
|
+
* Met à jour l'utilisateur connecté (métadonnées, mot de passe…) et émet `USER_UPDATED`. Un changement d'e-mail ne prend effet qu'après confirmation par `verifyOtp({ type: 'email_change' })`.
|
|
423
|
+
*/
|
|
339
424
|
updateUser(req: UpdateUserRequest): Promise<AuraResponse<User>>;
|
|
340
|
-
|
|
425
|
+
/** Envoie un e-mail de réinitialisation du mot de passe (accepte un email sous forme de chaîne ou un objet PasswordResetRequest). */
|
|
426
|
+
resetPasswordForEmail(emailOrReq: string | PasswordResetRequest): Promise<AuraResponse<{
|
|
341
427
|
message: string;
|
|
342
428
|
}>>;
|
|
429
|
+
/**
|
|
430
|
+
* Change le mot de passe de l'utilisateur connecté. Le serveur révoque toutes ses sessions : le SDK vide la session locale et émet `SIGNED_OUT`.
|
|
431
|
+
*/
|
|
343
432
|
updatePassword(newPassword: string, currentPassword?: string): Promise<AuraResponse<User>>;
|
|
433
|
+
/**
|
|
434
|
+
* Façade unifiée pour les opérations MFA (TOTP).
|
|
435
|
+
* Permet d'appeler indifféremment `aura.auth.mfa.enroll()` ou `aura.auth.mfaEnroll()`.
|
|
436
|
+
*/
|
|
437
|
+
get mfa(): {
|
|
438
|
+
enroll: (params?: {
|
|
439
|
+
factor_type?: 'totp';
|
|
440
|
+
factorType?: 'totp';
|
|
441
|
+
}) => Promise<AuraResponse<MfaEnrollResponse>>;
|
|
442
|
+
verifySetup: (codeOrParams: string | {
|
|
443
|
+
code: string;
|
|
444
|
+
}) => Promise<AuraResponse<{
|
|
445
|
+
recovery_codes: string[];
|
|
446
|
+
}>>;
|
|
447
|
+
verify: (req: MfaVerifyRequest) => Promise<AuraResponse<TokenPair>>;
|
|
448
|
+
unenroll: (passwordOrParams: string | {
|
|
449
|
+
password: string;
|
|
450
|
+
}) => Promise<AuraResponse<{
|
|
451
|
+
message: string;
|
|
452
|
+
}>>;
|
|
453
|
+
regenerateRecoveryCodes: (codeOrParams: string | {
|
|
454
|
+
code: string;
|
|
455
|
+
}) => Promise<AuraResponse<{
|
|
456
|
+
recovery_codes: string[];
|
|
457
|
+
}>>;
|
|
458
|
+
};
|
|
459
|
+
/** MFA : démarre l'enrôlement TOTP et renvoie le `secret` et l'URL `otpauth_url` à afficher en QR code. */
|
|
344
460
|
mfaEnroll(): Promise<AuraResponse<MfaEnrollResponse>>;
|
|
461
|
+
/** MFA : confirme l'enrôlement avec un premier code et renvoie les codes de récupération. */
|
|
345
462
|
mfaVerifySetup(code: string): Promise<AuraResponse<{
|
|
346
463
|
recovery_codes: string[];
|
|
347
464
|
}>>;
|
|
465
|
+
/**
|
|
466
|
+
* MFA : termine une connexion qui a renvoyé un défi (`mfa_token` et code TOTP). Enregistre la session et émet `SIGNED_IN`.
|
|
467
|
+
*/
|
|
348
468
|
mfaVerify(req: MfaVerifyRequest): Promise<AuraResponse<TokenPair>>;
|
|
469
|
+
/** MFA : désactive le MFA après confirmation par le mot de passe. */
|
|
349
470
|
mfaUnenroll(password: string): Promise<AuraResponse<{
|
|
350
471
|
message: string;
|
|
351
472
|
}>>;
|
|
@@ -378,23 +499,34 @@ declare class AuthService extends BaseService {
|
|
|
378
499
|
* l'endpoint, puis (succès) sauvegarde la session et émet `SIGNED_IN`.
|
|
379
500
|
*/
|
|
380
501
|
private _verifyToTokenPair;
|
|
502
|
+
/** Renvoie l'e-mail de vérification, à `email` ou à l'adresse de l'utilisateur connecté. */
|
|
381
503
|
resendVerificationEmail(email?: string): Promise<AuraResponse<{
|
|
382
504
|
message: string;
|
|
383
505
|
}>>;
|
|
506
|
+
/**
|
|
507
|
+
* Envoie un code à usage unique par e-mail ; à confirmer par `verifyOtp({ type: 'email' })`.
|
|
508
|
+
*/
|
|
384
509
|
signInWithEmailOtp(email: string): Promise<AuraResponse<{
|
|
385
510
|
message: string;
|
|
386
511
|
}>>;
|
|
512
|
+
/** Envoie un code à usage unique par SMS ; à confirmer par `verifyOtp({ type: 'sms' })`. */
|
|
387
513
|
signInWithSmsOtp(phone: string): Promise<AuraResponse<{
|
|
388
514
|
message: string;
|
|
389
515
|
}>>;
|
|
516
|
+
/** Liste les identités (fournisseurs) liées à l'utilisateur connecté. */
|
|
390
517
|
listIdentities(): Promise<AuraResponse<IdentityInfo[]>>;
|
|
518
|
+
/**
|
|
519
|
+
* Démarre la liaison d'un fournisseur OAuth au compte connecté et renvoie l'URL d'autorisation à ouvrir.
|
|
520
|
+
*/
|
|
391
521
|
linkIdentity(provider: string): Promise<AuraResponse<{
|
|
392
522
|
url: string;
|
|
393
523
|
provider: string;
|
|
394
524
|
}>>;
|
|
525
|
+
/** Détache une identité du compte connecté par son identifiant. */
|
|
395
526
|
unlinkIdentity(identityId: string): Promise<AuraResponse<{
|
|
396
527
|
message: string;
|
|
397
528
|
}>>;
|
|
529
|
+
/** MFA : régénère les codes de récupération après confirmation par un code TOTP. */
|
|
398
530
|
regenerateRecoveryCodes(code: string): Promise<AuraResponse<{
|
|
399
531
|
recovery_codes: string[];
|
|
400
532
|
}>>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseService, AuraResponse, AdminUser, AdminCreateUserRequest, AdminUpdateUserRequest, GenerateLinkType, GenerateLinkResult, UserStats, IdentityInfo, AdminSessionInfo, AuditLogEntry, AuthSettings, AuthSettingsUpdate, EmailTemplateUpdate, AuraClientLike, AuthChangePayload, SignUpRequest, LoginResponse, SignInRequest, OAuthSignInOptions, MagicLinkRequest, TokenPair, Session, User, SessionInfo, GetClaimsResult, UpdateUserRequest, PasswordResetRequest, MfaEnrollResponse, MfaVerifyRequest, MfaChallenge } from '@aurabase/core';
|
|
1
|
+
import { BaseService, AuraResponse, AdminUser, AdminCreateUserRequest, AdminUpdateUserRequest, GenerateLinkType, GenerateLinkResult, UserStats, IdentityInfo, AdminSessionInfo, AuditLogEntry, AuthSettings, AuthSettingsUpdate, EmailTemplateUpdate, AuraClientLike, AuthChangePayload, SignUpRequest, LoginResponse, SignInRequest, OAuthSignInOptions, OAuthSignInObjectOptions, MagicLinkRequest, TokenPair, Session, User, SessionInfo, GetClaimsResult, UpdateUserRequest, PasswordResetRequest, MfaEnrollResponse, MfaVerifyRequest, MfaChallenge } from '@aurabase/core';
|
|
2
2
|
|
|
3
3
|
declare class AuthAdminService extends BaseService {
|
|
4
4
|
/**
|
|
@@ -7,31 +7,59 @@ declare class AuthAdminService extends BaseService {
|
|
|
7
7
|
* `services/aura-gateway/src/middleware/project_subdomain.rs`).
|
|
8
8
|
*/
|
|
9
9
|
private get prefix();
|
|
10
|
+
/**
|
|
11
|
+
* Liste les utilisateurs du projet, avec recherche (`search`) et pagination (`limit`, `offset`).
|
|
12
|
+
*/
|
|
10
13
|
listUsers(params?: {
|
|
11
14
|
limit?: number;
|
|
12
15
|
offset?: number;
|
|
13
16
|
search?: string;
|
|
14
17
|
}): Promise<AuraResponse<AdminUser[]>>;
|
|
18
|
+
/** Lit un utilisateur par son identifiant. */
|
|
15
19
|
getUser(userId: string): Promise<AuraResponse<AdminUser>>;
|
|
20
|
+
/**
|
|
21
|
+
* Crée un utilisateur sans passer par l'inscription publique (e-mail, mot de passe, métadonnées, rôle).
|
|
22
|
+
*/
|
|
16
23
|
createUser(data: AdminCreateUserRequest): Promise<AuraResponse<AdminUser>>;
|
|
24
|
+
/** Met à jour un utilisateur : seuls les champs fournis changent. */
|
|
17
25
|
updateUser(userId: string, data: AdminUpdateUserRequest): Promise<AuraResponse<AdminUser>>;
|
|
26
|
+
/** Supprime un utilisateur. */
|
|
18
27
|
deleteUser(userId: string): Promise<AuraResponse<null>>;
|
|
28
|
+
/** Bannit un utilisateur : il ne peut plus se connecter. */
|
|
19
29
|
banUser(userId: string): Promise<AuraResponse<null>>;
|
|
30
|
+
/** Lève le bannissement d'un utilisateur. */
|
|
20
31
|
unbanUser(userId: string): Promise<AuraResponse<null>>;
|
|
32
|
+
/**
|
|
33
|
+
* Génère un lien à usage unique pour un utilisateur (`'magic'`, `'recovery'` ou `'invite'`) et renvoie `{ link, token }`.
|
|
34
|
+
*/
|
|
21
35
|
generateLink(userId: string, type: GenerateLinkType): Promise<AuraResponse<GenerateLinkResult>>;
|
|
36
|
+
/**
|
|
37
|
+
* Statistiques des utilisateurs : total, vérifiés, bannis, avec MFA et nouveaux sur 7 jours.
|
|
38
|
+
*/
|
|
22
39
|
getUserStats(): Promise<AuraResponse<UserStats>>;
|
|
40
|
+
/** Liste les identités liées à un utilisateur (fournisseurs OAuth, e-mail). */
|
|
23
41
|
listUserIdentities(userId: string): Promise<AuraResponse<IdentityInfo[]>>;
|
|
42
|
+
/**
|
|
43
|
+
* Liste les sessions actives de tous les utilisateurs, filtrables par `userId`, avec pagination.
|
|
44
|
+
*/
|
|
24
45
|
listSessions(params?: {
|
|
25
46
|
userId?: string;
|
|
26
47
|
limit?: number;
|
|
27
48
|
offset?: number;
|
|
28
49
|
}): Promise<AuraResponse<AdminSessionInfo[]>>;
|
|
50
|
+
/** Révoque une session par son identifiant. */
|
|
29
51
|
revokeSession(sessionId: string): Promise<AuraResponse<null>>;
|
|
52
|
+
/**
|
|
53
|
+
* Lit le journal d'audit (action, adresse IP, agent utilisateur, date), filtrable par `userId`, avec pagination.
|
|
54
|
+
*/
|
|
30
55
|
getAuditLog(params?: {
|
|
31
56
|
userId?: string;
|
|
32
57
|
limit?: number;
|
|
33
58
|
offset?: number;
|
|
34
59
|
}): Promise<AuraResponse<AuditLogEntry[]>>;
|
|
60
|
+
/**
|
|
61
|
+
* Lit les réglages d'authentification du projet. Les secrets (mot de passe SMTP, clés) ne sont jamais renvoyés.
|
|
62
|
+
*/
|
|
35
63
|
getSettings(): Promise<AuraResponse<AuthSettings>>;
|
|
36
64
|
/**
|
|
37
65
|
* Met à jour les réglages auth du projet (fusion partielle : seuls les champs fournis
|
|
@@ -49,12 +77,17 @@ declare class AuthAdminService extends BaseService {
|
|
|
49
77
|
* renvoyez donc pas tel quel un objet lu par {@link getSettings}.
|
|
50
78
|
*/
|
|
51
79
|
updateSettings(data: AuthSettingsUpdate): Promise<AuraResponse<AuthSettings>>;
|
|
80
|
+
/** Liste les modèles d'e-mail d'authentification du projet. */
|
|
52
81
|
listEmailTemplates(): Promise<AuraResponse<Record<string, unknown>[]>>;
|
|
82
|
+
/** Lit le modèle d'e-mail d'un type donné (par exemple confirmation, récupération). */
|
|
53
83
|
getEmailTemplate(type: string): Promise<AuraResponse<Record<string, unknown>>>;
|
|
84
|
+
/** Remplace le contenu du modèle d'e-mail d'un type donné. */
|
|
54
85
|
updateEmailTemplate(type: string, data: EmailTemplateUpdate): Promise<AuraResponse<Record<string, unknown>>>;
|
|
86
|
+
/** Supprime le modèle personnalisé d'un type d'e-mail. */
|
|
55
87
|
deleteEmailTemplate(type: string): Promise<AuraResponse<{
|
|
56
88
|
message: string;
|
|
57
89
|
}>>;
|
|
90
|
+
/** Envoie un e-mail de test avec le modèle d'un type à l'adresse `to_email`. */
|
|
58
91
|
testEmailTemplate(type: string, body: {
|
|
59
92
|
to_email: string;
|
|
60
93
|
}): Promise<AuraResponse<null>>;
|
|
@@ -204,6 +237,10 @@ declare class AuthService extends BaseService {
|
|
|
204
237
|
* sera jamais adopté.
|
|
205
238
|
*/
|
|
206
239
|
private get _oauthInitiatedKey();
|
|
240
|
+
/**
|
|
241
|
+
* Écoute les changements d'état de la session (`SIGNED_IN`, `SIGNED_OUT`, `TOKEN_REFRESHED`, `USER_UPDATED`,
|
|
242
|
+
* `MFA_CHALLENGE`…). Renvoie de quoi se désabonner : `unsubscribe()` ou `data.subscription.unsubscribe()`.
|
|
243
|
+
*/
|
|
207
244
|
onAuthStateChange(callback: AuthStateCallback): {
|
|
208
245
|
unsubscribe: () => void;
|
|
209
246
|
data: {
|
|
@@ -213,12 +250,25 @@ declare class AuthService extends BaseService {
|
|
|
213
250
|
};
|
|
214
251
|
};
|
|
215
252
|
private _emitEvent;
|
|
253
|
+
/**
|
|
254
|
+
* Crée un compte avec e-mail et mot de passe. Si le projet n'exige pas de confirmation et que le MFA n'est pas actif,
|
|
255
|
+
* la session est enregistrée et `SIGNED_IN` est émis ; sinon la réponse est un défi MFA (voir `isMfaChallenge`).
|
|
256
|
+
*/
|
|
216
257
|
signUp(req: SignUpRequest): Promise<AuraResponse<LoginResponse>>;
|
|
258
|
+
/**
|
|
259
|
+
* Connecte un utilisateur par e-mail et mot de passe. Enregistre la session et émet `SIGNED_IN` ;
|
|
260
|
+
* si le MFA est actif, renvoie un défi (`isMfaChallenge`) à compléter par `mfaVerify`.
|
|
261
|
+
*/
|
|
217
262
|
signInWithPassword(req: SignInRequest): Promise<AuraResponse<LoginResponse>>;
|
|
218
263
|
/**
|
|
219
264
|
* Démarre un flux OAuth : renvoie toujours `{ url }` (et redirige en plus le navigateur
|
|
220
265
|
* si un `window` existe).
|
|
221
266
|
*
|
|
267
|
+
* Accepte indifféremment la signature canonique :
|
|
268
|
+
* `signInWithOAuth('google', { redirectTo })`
|
|
269
|
+
* ou la signature objet compatible Supabase :
|
|
270
|
+
* `signInWithOAuth({ provider: 'google', options: { redirectTo } })`
|
|
271
|
+
*
|
|
222
272
|
* ### `options.queryParams` — contrat (N22)
|
|
223
273
|
*
|
|
224
274
|
* Les clés listées par {@link OAUTH_FORWARDABLE_QUERY_PARAMS} — `prompt`, `login_hint`,
|
|
@@ -248,11 +298,27 @@ declare class AuthService extends BaseService {
|
|
|
248
298
|
signInWithOAuth(provider: string, options?: OAuthSignInOptions): Promise<AuraResponse<{
|
|
249
299
|
url: string;
|
|
250
300
|
}>>;
|
|
301
|
+
signInWithOAuth(options: OAuthSignInObjectOptions): Promise<AuraResponse<{
|
|
302
|
+
url: string;
|
|
303
|
+
}>>;
|
|
304
|
+
/**
|
|
305
|
+
* Envoie un lien de connexion par e-mail (« magic link »). La session s'obtient ensuite par `verifyOtp({ type: 'magiclink' })`.
|
|
306
|
+
*/
|
|
251
307
|
signInWithMagicLink(req: MagicLinkRequest): Promise<AuraResponse<{
|
|
252
308
|
message: string;
|
|
253
309
|
}>>;
|
|
310
|
+
/**
|
|
311
|
+
* Crée une session anonyme (utilisateur sans e-mail), enregistrée et signalée par `SIGNED_IN`.
|
|
312
|
+
*/
|
|
254
313
|
signInAnonymously(): Promise<AuraResponse<TokenPair>>;
|
|
314
|
+
/**
|
|
315
|
+
* Déconnecte : révoque le jeton de rafraîchissement côté serveur s'il existe, vide la session locale et émet `SIGNED_OUT`.
|
|
316
|
+
*/
|
|
255
317
|
signOut(): Promise<AuraResponse<null>>;
|
|
318
|
+
/**
|
|
319
|
+
* Rafraîchit la session avec le jeton de rafraîchissement et émet `TOKEN_REFRESHED`.
|
|
320
|
+
* Les rafraîchissements concurrents sont fusionnés en un seul appel.
|
|
321
|
+
*/
|
|
256
322
|
refreshSession(): Promise<AuraResponse<TokenPair>>;
|
|
257
323
|
/**
|
|
258
324
|
* Session courante lue depuis le store (synchrone en pratique, pas d'appel réseau).
|
|
@@ -270,6 +336,10 @@ declare class AuthService extends BaseService {
|
|
|
270
336
|
access_token: string | null;
|
|
271
337
|
user: User | null;
|
|
272
338
|
}>;
|
|
339
|
+
/**
|
|
340
|
+
* Installe une session à partir d'un jeton d'accès et d'un jeton de rafraîchissement existants (par exemple reçus d'un serveur).
|
|
341
|
+
* Un jeton d'accès expiré est rafraîchi ; une session invalide est refusée et l'état précédent est restauré.
|
|
342
|
+
*/
|
|
273
343
|
setSession(accessToken: string, refreshToken: string): Promise<AuraResponse<User>>;
|
|
274
344
|
/**
|
|
275
345
|
* Échange le code d'autorisation PKCE contre une session.
|
|
@@ -288,8 +358,15 @@ declare class AuthService extends BaseService {
|
|
|
288
358
|
* récupération de mot de passe, `?code=…&type=recovery` — voir `_detectSessionInUrl`).
|
|
289
359
|
*/
|
|
290
360
|
private _exchangeCode;
|
|
361
|
+
/**
|
|
362
|
+
* Liste les sessions de l'utilisateur connecté (appareil, adresse IP, dates) ; `is_current` repère la session courante.
|
|
363
|
+
*/
|
|
291
364
|
listSessions(): Promise<AuraResponse<SessionInfo[]>>;
|
|
365
|
+
/** Révoque une session de l'utilisateur connecté par son identifiant. */
|
|
292
366
|
revokeSession(sessionId: string): Promise<AuraResponse<null>>;
|
|
367
|
+
/**
|
|
368
|
+
* Déconnecte l'utilisateur partout : révoque toutes ses sessions, vide la session locale et émet `SIGNED_OUT`.
|
|
369
|
+
*/
|
|
293
370
|
revokeAllSessions(): Promise<AuraResponse<{
|
|
294
371
|
message: string;
|
|
295
372
|
}>>;
|
|
@@ -304,7 +381,9 @@ declare class AuthService extends BaseService {
|
|
|
304
381
|
* (`skipAuthRefresh`, aucun refresh ni retry-401 sur le store). Le backend
|
|
305
382
|
* applique l'isolation projet native : un token d'un AUTRE projet → 403.
|
|
306
383
|
*/
|
|
307
|
-
getUser(jwt?: string): Promise<AuraResponse<User
|
|
384
|
+
getUser(jwt?: string): Promise<AuraResponse<User & {
|
|
385
|
+
user: User;
|
|
386
|
+
}>>;
|
|
308
387
|
/**
|
|
309
388
|
* Vérifie et décode les claims d'un JWT.
|
|
310
389
|
*
|
|
@@ -335,17 +414,59 @@ declare class AuthService extends BaseService {
|
|
|
335
414
|
issuer?: string;
|
|
336
415
|
audience?: string;
|
|
337
416
|
}): Promise<AuraResponse<GetClaimsResult>>;
|
|
417
|
+
/**
|
|
418
|
+
* Supprime le compte de l'utilisateur connecté après confirmation par son mot de passe, puis vide la session locale.
|
|
419
|
+
*/
|
|
338
420
|
deleteUser(password: string): Promise<AuraResponse<null>>;
|
|
421
|
+
/**
|
|
422
|
+
* Met à jour l'utilisateur connecté (métadonnées, mot de passe…) et émet `USER_UPDATED`. Un changement d'e-mail ne prend effet qu'après confirmation par `verifyOtp({ type: 'email_change' })`.
|
|
423
|
+
*/
|
|
339
424
|
updateUser(req: UpdateUserRequest): Promise<AuraResponse<User>>;
|
|
340
|
-
|
|
425
|
+
/** Envoie un e-mail de réinitialisation du mot de passe (accepte un email sous forme de chaîne ou un objet PasswordResetRequest). */
|
|
426
|
+
resetPasswordForEmail(emailOrReq: string | PasswordResetRequest): Promise<AuraResponse<{
|
|
341
427
|
message: string;
|
|
342
428
|
}>>;
|
|
429
|
+
/**
|
|
430
|
+
* Change le mot de passe de l'utilisateur connecté. Le serveur révoque toutes ses sessions : le SDK vide la session locale et émet `SIGNED_OUT`.
|
|
431
|
+
*/
|
|
343
432
|
updatePassword(newPassword: string, currentPassword?: string): Promise<AuraResponse<User>>;
|
|
433
|
+
/**
|
|
434
|
+
* Façade unifiée pour les opérations MFA (TOTP).
|
|
435
|
+
* Permet d'appeler indifféremment `aura.auth.mfa.enroll()` ou `aura.auth.mfaEnroll()`.
|
|
436
|
+
*/
|
|
437
|
+
get mfa(): {
|
|
438
|
+
enroll: (params?: {
|
|
439
|
+
factor_type?: 'totp';
|
|
440
|
+
factorType?: 'totp';
|
|
441
|
+
}) => Promise<AuraResponse<MfaEnrollResponse>>;
|
|
442
|
+
verifySetup: (codeOrParams: string | {
|
|
443
|
+
code: string;
|
|
444
|
+
}) => Promise<AuraResponse<{
|
|
445
|
+
recovery_codes: string[];
|
|
446
|
+
}>>;
|
|
447
|
+
verify: (req: MfaVerifyRequest) => Promise<AuraResponse<TokenPair>>;
|
|
448
|
+
unenroll: (passwordOrParams: string | {
|
|
449
|
+
password: string;
|
|
450
|
+
}) => Promise<AuraResponse<{
|
|
451
|
+
message: string;
|
|
452
|
+
}>>;
|
|
453
|
+
regenerateRecoveryCodes: (codeOrParams: string | {
|
|
454
|
+
code: string;
|
|
455
|
+
}) => Promise<AuraResponse<{
|
|
456
|
+
recovery_codes: string[];
|
|
457
|
+
}>>;
|
|
458
|
+
};
|
|
459
|
+
/** MFA : démarre l'enrôlement TOTP et renvoie le `secret` et l'URL `otpauth_url` à afficher en QR code. */
|
|
344
460
|
mfaEnroll(): Promise<AuraResponse<MfaEnrollResponse>>;
|
|
461
|
+
/** MFA : confirme l'enrôlement avec un premier code et renvoie les codes de récupération. */
|
|
345
462
|
mfaVerifySetup(code: string): Promise<AuraResponse<{
|
|
346
463
|
recovery_codes: string[];
|
|
347
464
|
}>>;
|
|
465
|
+
/**
|
|
466
|
+
* MFA : termine une connexion qui a renvoyé un défi (`mfa_token` et code TOTP). Enregistre la session et émet `SIGNED_IN`.
|
|
467
|
+
*/
|
|
348
468
|
mfaVerify(req: MfaVerifyRequest): Promise<AuraResponse<TokenPair>>;
|
|
469
|
+
/** MFA : désactive le MFA après confirmation par le mot de passe. */
|
|
349
470
|
mfaUnenroll(password: string): Promise<AuraResponse<{
|
|
350
471
|
message: string;
|
|
351
472
|
}>>;
|
|
@@ -378,23 +499,34 @@ declare class AuthService extends BaseService {
|
|
|
378
499
|
* l'endpoint, puis (succès) sauvegarde la session et émet `SIGNED_IN`.
|
|
379
500
|
*/
|
|
380
501
|
private _verifyToTokenPair;
|
|
502
|
+
/** Renvoie l'e-mail de vérification, à `email` ou à l'adresse de l'utilisateur connecté. */
|
|
381
503
|
resendVerificationEmail(email?: string): Promise<AuraResponse<{
|
|
382
504
|
message: string;
|
|
383
505
|
}>>;
|
|
506
|
+
/**
|
|
507
|
+
* Envoie un code à usage unique par e-mail ; à confirmer par `verifyOtp({ type: 'email' })`.
|
|
508
|
+
*/
|
|
384
509
|
signInWithEmailOtp(email: string): Promise<AuraResponse<{
|
|
385
510
|
message: string;
|
|
386
511
|
}>>;
|
|
512
|
+
/** Envoie un code à usage unique par SMS ; à confirmer par `verifyOtp({ type: 'sms' })`. */
|
|
387
513
|
signInWithSmsOtp(phone: string): Promise<AuraResponse<{
|
|
388
514
|
message: string;
|
|
389
515
|
}>>;
|
|
516
|
+
/** Liste les identités (fournisseurs) liées à l'utilisateur connecté. */
|
|
390
517
|
listIdentities(): Promise<AuraResponse<IdentityInfo[]>>;
|
|
518
|
+
/**
|
|
519
|
+
* Démarre la liaison d'un fournisseur OAuth au compte connecté et renvoie l'URL d'autorisation à ouvrir.
|
|
520
|
+
*/
|
|
391
521
|
linkIdentity(provider: string): Promise<AuraResponse<{
|
|
392
522
|
url: string;
|
|
393
523
|
provider: string;
|
|
394
524
|
}>>;
|
|
525
|
+
/** Détache une identité du compte connecté par son identifiant. */
|
|
395
526
|
unlinkIdentity(identityId: string): Promise<AuraResponse<{
|
|
396
527
|
message: string;
|
|
397
528
|
}>>;
|
|
529
|
+
/** MFA : régénère les codes de récupération après confirmation par un code TOTP. */
|
|
398
530
|
regenerateRecoveryCodes(code: string): Promise<AuraResponse<{
|
|
399
531
|
recovery_codes: string[];
|
|
400
532
|
}>>;
|