Aurabase Logo
aurabasedocs
docsServicesAuth

Authentification

Identité production-ready en trois lignes. OAuth (13 providers), MFA TOTP, magic links, OTP email et SMS, RBAC — un seul SDK, zéro redirection opaque.

7 min de lecture·Niveau intermédiaire·Révisé le 15 avr. 2026
#
Vue d’ensemble

Ce que fait aura-auth

Le service aura-auth émet et valide des JWT pour les utilisateurs d'un projet. La signature est HS256 par défaut, avec un secret dérivé par projet ; RS256 (et l'exposition d'un JWKS) n'est utilisé que si une clé RSA est configurée — c'est un opt-in, pas le comportement par défaut. Il gère le cycle de vie complet : inscription, vérification email, MFA, rotation des refresh tokens, révocation côté serveur.

Chaque token embarque sub, project_id, role, tenant. Le gateway injecte ces claims dans les connexions Postgres via request.jwt.claims, rendant les policies RLS directement accessibles à auth.uid(), auth.role(), auth.tenant().

Info
Les tables utilisateurs vivent dans project_{uuid}_auth : users, oauth_accounts, refresh_tokens, mfa_factors, sessions, auth_audit_log.
#
Modèle mental

Trois acteurs, trois responsabilités

Le client signe un challenge, le service frappe la base, le gateway valide à chaque requête ultérieure.

flux sign-in
TEXT
# 1. Client → aura-auth : credentials
POST /v1/auth/{project_id}/login { email, password }
# 2. aura-auth : Argon2id verify + MFA si requis (le statut reste 200)
if password OK && mfa_required → data = { mfa_required: true, mfa_token }
else → data = { access_token, refresh_token, user, ... }
# 3. Requêtes suivantes passent par gateway
apikey: <anon_key> + Authorization: Bearer <jwt>
gateway vérifie le JWT → claims injectés → Postgres RLS
#
Méthodes supportées

Huit mécanismes prêts

Email + mot de passe
Argon2id, vérification email optionnelle, rotation sécurisée.
OAuth 2.1 · PKCE
13 providers — Google, GitHub, Apple, Microsoft, Discord, Twitter, Facebook, Bitbucket, Figma, Notion, Spotify, Twitch, Zoom.
MFA TOTP
Authy, 1Password, Google Authenticator. Fallback SMS.
Magic links & OTP
Email sans mot de passe, templates i18n, rate-limit par adresse.
RBAC granulaire
Rôles, permissions, hiérarchies org. Policies RLS auto-générées.
Session binding
Device fingerprint, IP check, rotation refresh tokens.
#
Exemple minimal

Quatre flux, un SDK

app/actions/auth.tsTYPESCRIPT
'use server'
import { aura } from '@/lib/aurabase'
export async function signUp(email: string, password: string) {
const { data, error } = await aura.auth.signUp({
email,
password,
options: { emailRedirectTo: '/auth/callback' },
})
if (error) return { error }
return { user: data.user }
}
Session côté serveur
En Next.js App Router, utilisez toujours le helper createServerClient depuis @aurabase/next dans les server actions et route handlers. Le cookie refresh token est httpOnly et ne doit jamais être lu par du JS client.
#
Endpoints REST

Si vous n’utilisez pas le SDK

Tous les flux sont également exposés en REST brut, avec les mêmes validations côté serveur. Voir /docs/api-rest pour la liste complète.

MéthodeEndpointDescription
POST/v1/auth/{project_id}/registerCréer un compte email + mot de passe
POST/v1/auth/{project_id}/loginAuthentifier avec mot de passe
GET/v1/auth/oauth/{provider}/startDémarrer le flux OAuth (PKCE)
POST/v1/auth/{project_id}/magic-linkEnvoyer un lien magique
POST/v1/auth/{project_id}/email-otp/sendEnvoyer un code OTP par email
POST/v1/auth/{project_id}/mfa/setupEnrôler un facteur TOTP
POST/v1/auth/{project_id}/refreshRafraîchir la paire de tokens
GET/v1/auth/{project_id}/meRetourner l’utilisateur courant
GET/v1/auth/{project_id}/sessionsLister les sessions actives
DELETE/v1/auth/{project_id}/sessions/{session_id}Révoquer une session précise
POST/v1/auth/{project_id}/logoutFermer la session courante
Dernière mise à jour · 15 avr. 2026