SDK JavaScript : référence d'authentification
Chaque méthode d'authentification et d'administration des utilisateurs, avec sa signature.
6 min de lecture·Niveau référence·Révisé le 12 oct. 2026
Ce texte anglais a été généré automatiquement à partir de l’original français et n’a pas encore été relu.
Cette page a été traduite automatiquement. La version anglaise fait foi.
#
Fonctions
Fonctions exportées
| Fonction | Descriptif |
|---|---|
function isMfaChallenge(v: unknown): v is MfaChallenge | Garde de type discriminant LoginResponse = TokenPair | MfaChallenge. |
#
Classe
Service d'authentification
| Méthode | Descriptif |
|---|---|
dispose(): void | Démantèle le cycle de vie proactif : ticker, visibilité, BroadcastChannel, auditeurs. |
onAuthStateChange(callback: AuthStateCallback): { unsubscribe: () => void; data: { subscription: { unsubscribe: () => void; }; }; } | Écoute les changements d'état de session (SIGNED_IN, SIGNED_OUT, TOKEN_REFRESHED, USER_UPDATED, MFA_CHALLENGE…). |
signUp(req: SignUpRequest): Promise<AuraResponse<LoginResponse>> | Créez un compte avec email et mot de passe. |
signInWithPassword(req: SignInRequest): Promise<AuraResponse<LoginResponse>> | Connecte un utilisateur par e-mail et mot de passe. |
signInWithOAuth(provider: string, options?: OAuthSignInOptions): Promise<AuraResponse<{ url: string; }>> | Démarre un flux OAuth : renvoie toujours { url } (et redirige en outre le navigateur si un window existe). |
signInWithMagicLink(req: MagicLinkRequest): Promise<AuraResponse<{ message: string; }>> | Envoie un lien de connexion par email (« lien magique »). |
signInAnonymously(): Promise<AuraResponse<TokenPair>> | Crée une session anonyme (utilisateur sans email), enregistrée et rapportée par SIGNED_IN. |
signOut(): Promise<AuraResponse<null>> | Déconnexion : révoque le jeton d'actualisation côté serveur s'il existe, vide la session locale et émet SIGNED_OUT. |
refreshSession(): Promise<AuraResponse<TokenPair>> | Actualise la session avec le jeton d'actualisation et émet TOKEN_REFRESHED. |
getSession(): Promise<{ data: { session: Session | null; }; error: null; accessToken: string | null; access_token: string | null; user: User | null; }> | Session en cours lue depuis le store (synchrone en pratique, pas d'appel réseau). |
setSession(accessToken: string, refreshToken: string): Promise<AuraResponse<User>> | Installe une session à partir d'un jeton d'accès et d'un jeton d'actualisation existants (par exemple reçus d'un serveur). |
exchangeCodeForSession(authCode: string, codeVerifier?: string): Promise<AuraResponse<LoginResponse>> | Échange le code d'autorisation PKCE pour une session. |
listSessions(): Promise<AuraResponse<SessionInfo[]>> | Répertorie les sessions des utilisateurs connectés (appareil, adresse IP, dates) ; is_current localise la session en cours. |
revokeSession(sessionId: string): Promise<AuraResponse<null>> | Révoque une session de l'utilisateur connecté par son identifiant. |
revokeAllSessions(): Promise<AuraResponse<{ message: string; }>> | Déconnecte l'utilisateur partout : révoque toutes ses sessions, vide la session locale et émet SIGNED_OUT. |
getUser(jwt?: string): Promise<AuraResponse<User>> | Récupère l’utilisateur validé côté serveur. |
getClaims(jwt?: string, options?: { allowExpired?: boolean; issuer?: string; audience?: string; }): Promise<AuraResponse<GetClaimsResult>> | Vérifie et décode les réclamations d'un JWT. |
deleteUser(password: string): Promise<AuraResponse<null>> | Supprime le compte de l'utilisateur connecté après confirmation de son mot de passe, puis efface la session locale. |
updateUser(req: UpdateUserRequest): Promise<AuraResponse<User>> | Met à jour l’utilisateur connecté (métadonnées, mot de passe, etc.) et émet USER_UPDATED. |
resetPasswordForEmail(req: PasswordResetRequest): Promise<AuraResponse<{ message: string; }>> | Envoie un e-mail de réinitialisation du mot de passe. |
updatePassword(newPassword: string, currentPassword?: string): Promise<AuraResponse<User>> | Modifie le mot de passe de l'utilisateur connecté. |
mfaEnroll(): Promise<AuraResponse<MfaEnrollResponse>> | MFA: démarre l'inscription TOTP et renvoie le secret et l'URL otpauth_url à afficher sous forme de code QR. |
mfaVerifySetup(code: string): Promise<AuraResponse<{ recovery_codes: string[]; }>> | MFA: confirme l'inscription avec un premier code et renvoie les codes de récupération. |
mfaVerify(req: MfaVerifyRequest): Promise<AuraResponse<TokenPair>> | MFA: termine une connexion qui a renvoyé un challenge (mfa_token et code TOTP). |
mfaUnenroll(password: string): Promise<AuraResponse<{ message: string; }>> | MFA: désactive MFA après confirmation avec le mot de passe. |
verifyOtp(params: VerifyEmailChangeOtpParams): Promise<AuraResponse<User>>verifyOtp(params: Exclude<VerifyOtpParams, VerifyEmailChangeOtpParams>): Promise<AuraResponse<TokenPair>> | Point d'entrée UNIQUE de vérification OTP (parité verifyOtp de @supabase/auth-js). |
resendVerificationEmail(email?: string): Promise<AuraResponse<{ message: string; }>> | Renvoie l'e-mail de vérification à email ou à l'adresse de l'utilisateur connecté. |
signInWithEmailOtp(email: string): Promise<AuraResponse<{ message: string; }>> | Envoie un code à usage unique par email ; à confirmer par verifyOtp({ type: 'email' }). |
signInWithSmsOtp(phone: string): Promise<AuraResponse<{ message: string; }>> | Envoie un code à usage unique par SMS ; à confirmer par verifyOtp({ type: 'sms' }). |
listIdentities(): Promise<AuraResponse<IdentityInfo[]>> | Répertorie les identités (fournisseurs) liées à l'utilisateur connecté. |
linkIdentity(provider: string): Promise<AuraResponse<{ url: string; provider: string; }>> | Commence à lier un fournisseur OAuth au compte connecté et renvoie l'URL d'autorisation à ouvrir. |
unlinkIdentity(identityId: string): Promise<AuraResponse<{ message: string; }>> | Détache une identité du compte connecté par son identifiant. |
regenerateRecoveryCodes(code: string): Promise<AuraResponse<{ recovery_codes: string[]; }>> | MFA: régénère les codes de récupération après confirmation par un code TOTP. |
signInWithIdToken(provider: string, idToken: string, accessToken?: string): Promise<AuraResponse<LoginResponse>> | Échange un identifiant de jeton de fournisseur (Google/Apple, mobile natif) pour une session. |
getSettings(): Promise<AuraResponse<{ disable_signup: boolean; external: Record<string, boolean>; mailer_autoconfirm: boolean; mfa_enabled: boolean; }>> | Parité GoTrue : GET /settings – configuration de projet publique (aucune authentification requise). |
getAnonKey(): Promise<AuraResponse<{ anon_key: string; }>> | Clé publiable (clé anonyme) du projet — GET /anon-key (publique, comme le modèle Supabase). |
resetPassword(token: string, newPassword: string): Promise<AuraResponse<TokenPair>> | Consomme le jeton de récupération de mot de passe et applique le nouveau mot de passe. |
promoteAnonymous(credentials: { email: string; password: string; }): Promise<AuraResponse<TokenPair>> | Convertit l'utilisateur anonyme actuel (JWT requis) en un compte de messagerie + mot de passe standard. |
verifyMagicLink(token: string): Promise<AuraResponse<TokenPair>> | Consomme le jeton de lien magique et renvoie un TokenPair. |
#
Classe
AuthAdminService
| Méthode | Descriptif |
|---|---|
listUsers(params?: { limit?: number; offset?: number; search?: string; }): Promise<AuraResponse<AdminUser[]>> | Répertorie les utilisateurs du projet, avec recherche (search) et pagination (limit, offset). |
getUser(userId: string): Promise<AuraResponse<AdminUser>> | Lit un utilisateur par son identifiant. |
createUser(data: AdminCreateUserRequest): Promise<AuraResponse<AdminUser>> | Crée un utilisateur sans passer par une inscription publique (email, mot de passe, métadonnées, rôle). |
updateUser(userId: string, data: AdminUpdateUserRequest): Promise<AuraResponse<AdminUser>> | Met à jour un utilisateur : seuls les champs fournis changent. |
deleteUser(userId: string): Promise<AuraResponse<null>> | Supprimer un utilisateur. |
banUser(userId: string): Promise<AuraResponse<null>> | Bannit un utilisateur : il ne peut plus se connecter. |
unbanUser(userId: string): Promise<AuraResponse<null>> | Lever l'interdiction d'un utilisateur. |
generateLink(userId: string, type: GenerateLinkType): Promise<AuraResponse<GenerateLinkResult>> | Génère un lien unique pour un utilisateur ('magic', 'recovery' ou 'invite') et renvoie { link, token }. |
getUserStats(): Promise<AuraResponse<UserStats>> | Statistiques utilisateurs : totales, vérifiées, bannies, avec MFA et nouvelles sur 7 jours. |
listUserIdentities(userId: string): Promise<AuraResponse<IdentityInfo[]>> | Répertorie les identités liées à un utilisateur (fournisseurs OAuth, email). |
listSessions(params?: { userId?: string; limit?: number; offset?: number; }): Promise<AuraResponse<AdminSessionInfo[]>> | Répertorie les sessions actives de tous les utilisateurs, filtrables par userId, avec pagination. |
revokeSession(sessionId: string): Promise<AuraResponse<null>> | Révoque une session par son identifiant. |
getAuditLog(params?: { userId?: string; limit?: number; offset?: number; }): Promise<AuraResponse<AuditLogEntry[]>> | Lit le journal d'audit (action, adresse IP, agent utilisateur, date), filtrable par userId, avec pagination. |
getSettings(): Promise<AuraResponse<AuthSettings>> | Lit les paramètres d'authentification du projet. |
updateSettings(data: AuthSettingsUpdate): Promise<AuraResponse<AuthSettings>> | Met à jour les paramètres d'authentification du projet (fusion partielle : seuls les champs fournis sont écrits, COALESCE côté backend). |
listEmailTemplates(): Promise<AuraResponse<Record<string, unknown>[]>> | Répertorie les modèles d'e-mails d'authentification de projet. |
getEmailTemplate(type: string): Promise<AuraResponse<Record<string, unknown>>> | Lit le modèle d'e-mail d'un type donné (par exemple, confirmation, récupération). |
updateEmailTemplate(type: string, data: EmailTemplateUpdate): Promise<AuraResponse<Record<string, unknown>>> | Remplace le contenu du modèle d'e-mail d'un type donné. |
deleteEmailTemplate(type: string): Promise<AuraResponse<{ message: string; }>> | Supprime le modèle personnalisé d'un type d'e-mail. |
testEmailTemplate(type: string, body: { to_email: string; }): Promise<AuraResponse<null>> | Envoie un email de test avec un modèle de type à l'adresse to_email. |
Page générée
Cette page est générée à partir des déclarations de type et des commentaires du SDK, elle ne peut donc pas dériver du code publié. Pour des exemples concrets, lisez les guides.
Dernière mise à jour · 12 oct. 2026