Démarrage Rapide
Ce guide t’accompagne dans l’intégration de l’authentification Auris dans ton application depuis zéro. À la fin, tu auras un flux de login fonctionnel qui redirige les utilisateurs vers la page de login hébergée d’Auris, gère le callback et affiche les informations de l’utilisateur authentifié.
Temps estimé : 5–10 minutes.
Prérequis
- Node.js 20+ (pour les intégrations JavaScript, React et Next.js)
- PHP 7.4+ avec Composer (pour les intégrations PHP)
- Un compte Auris — inscris-toi à l’URL de ta Console Auris
- Un projet applicatif existant auquel tu souhaites ajouter l’authentification
Étape 1 : Crée une Application dans la Console
Avant d’installer un SDK, enregistre ton application avec Auris afin qu’elle reçoive un Client ID.
- Connecte-toi à la Console Auris.
- Navigue vers Applications dans la barre latérale.
- Clique sur Créer une Application.
- Sélectionne le type d’application :
- WEB — pour les apps basées sur navigateur (React, Next.js, Vue, Angular, server-rendered)
- MOBILE — pour les apps natives iOS ou Android
- M2M — pour les intégrations serveur à serveur ou CLI (pas de login utilisateur)
- Entre un nom d’affichage pour ton application (ex.
Mon App - Développement). - Ajoute ton URI de Redirection — l’URL vers laquelle Auris redirigera après un login réussi :
- Développement local :
http://localhost:3000/callback - Production :
https://votre-domaine.com/callback
- Développement local :
- Clique sur Créer.
Après la création, copie ton Client ID depuis la page de détail de l’application.
N’expose jamais ton Client Secret dans le JavaScript côté navigateur. Pour les types d’application WEB et MOBILE, Auris utilise PKCE (Proof Key for Code Exchange) et ne requiert pas de client secret. Les client secrets ne sont utilisés que pour les applications M2M (client_credentials) s’exécutant côté serveur.
Étape 2 : Installe le SDK
Choisis le SDK correspondant à ta stack.
# Next.js
npm install @auris/nextjs @auris/react @auris/js
# React
npm install @auris/react @auris/js
# JavaScript vanilla
npm install @auris/js
# PHP
composer require auris/sdkÉtape 3 : Configure Auris
Next.js — Ajoute AurisProvider à ton layout.tsx racine :
// app/layout.tsx
import { AurisProvider } from '@auris/nextjs'
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="fr">
<body>
<AurisProvider
domain="https://auth.votre-domaine.com"
clientId="VOTRE_CLIENT_ID"
redirectUri="http://localhost:3000/callback"
>
{children}
</AurisProvider>
</body>
</html>
)
}Ajoute le middleware Auris pour protéger les routes :
// middleware.ts
import { aurisMiddleware } from '@auris/nextjs/middleware'
export default aurisMiddleware({
domain: process.env.AURIS_DOMAIN!,
clientId: process.env.AURIS_CLIENT_ID!,
// Routes nécessitant une authentification
protectedPaths: ['/dashboard', '/settings', '/profile'],
// Routes qui contournent entièrement les vérifications d'auth (le callback OAuth doit être public)
publicPaths: ['/callback', '/login', '/'],
})
export const config = {
matcher: ['/((?!_next/static|_next/image|favicon.ico).*)'],
}React — Enveloppe l’app avec AurisProvider :
import { AurisProvider } from '@auris/react'
// ...
<AurisProvider domain="https://auth.votre-domaine.com" clientId="VOTRE_CLIENT_ID" redirectUri="...">
<App />
</AurisProvider>PHP :
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Auris\AurisClient;
use Auris\AurisConfig;
$config = new AurisConfig(
'https://auth.votre-domaine.com', // domain
'VOTRE_CLIENT_ID', // clientId
'http://localhost:8000/callback.php' // redirectUri
// clientSecret vaut '' par défaut — inutile pour les apps WEB/PKCE
);
$auris = new AurisClient($config);Étape 4 : Ajoute un Bouton de Login
// components/LoginButton.tsx
'use client'
import { useAuris } from '@auris/nextjs'
export function LoginButton() {
const { loginWithRedirect } = useAuris()
return <button onClick={() => loginWithRedirect()}>Se connecter</button>
}Étape 5 : Gère le Callback
Après l’authentification, Auris redirige vers ton redirectUri avec un code d’autorisation. Le SDK @auris/nextjs effectue l’échange de code automatiquement dès qu’il détecte le paramètre code dans l’URL.
// app/callback/page.tsx
'use client'
import { useEffect } from 'react'
import { useRouter } from 'next/navigation'
import { useAuris } from '@auris/nextjs'
export default function CallbackPage() {
const { isAuthenticated, isLoading, error } = useAuris()
const router = useRouter()
useEffect(() => {
// AurisProvider effectue l'échange de code automatiquement au montage.
// Dès que la session est prête, on quitte la page de callback.
if (!isLoading && isAuthenticated) {
router.replace('/dashboard')
}
}, [isLoading, isAuthenticated, router])
if (error) {
return <p>Échec de la connexion : {error.message}</p>
}
return <p>Finalisation de la connexion...</p>
}Étape 6 : Affiche les Informations Utilisateur
// app/dashboard/page.tsx
'use client'
import { useUser, useAuris } from '@auris/nextjs'
export default function DashboardPage() {
const { user, isLoading } = useUser()
const { isAuthenticated } = useAuris()
if (isLoading) return <p>Chargement...</p>
if (!isAuthenticated) return <p>Tu n'es pas authentifié.</p>
return (
<div>
<h1>Bienvenue, {user?.firstName ?? user?.email}</h1>
<p>Email : {user?.email}</p>
<p>Rôles : {user?.roles?.join(', ')}</p>
</div>
)
}Étape 7 : Ajoute un Bouton de Déconnexion
'use client'
import { useAuris } from '@auris/nextjs'
export function LogoutButton() {
const { logout } = useAuris()
return (
<button onClick={() => logout()}>
{/* Gérez la redirection post-déconnexion dans votre routeur */}
Se déconnecter
</button>
)
}Variables d’Environnement
# .env.local
# Côté client : utilisé par AurisProvider dans le bundle du navigateur
NEXT_PUBLIC_AURIS_DOMAIN=https://auth.votre-domaine.com
NEXT_PUBLIC_AURIS_CLIENT_ID=votre_client_id
# Côté serveur : utilisé par aurisMiddleware() et getSession(config) — jamais exposé au navigateur
AURIS_DOMAIN=https://auth.votre-domaine.com
AURIS_CLIENT_ID=votre_client_id
# Uniquement pour les clients M2M côté serveur (ne jamais exposer dans le navigateur)
AURIS_CLIENT_SECRET=votre_client_secretLes variables d’environnement avec le préfixe NEXT_PUBLIC_ sont intégrées dans le bundle du navigateur et
sont publiques. Seuls domain et clientId devraient être publics. N’expose jamais
AURIS_CLIENT_SECRET avec un préfixe NEXT_PUBLIC_.
Prochaines Étapes
- Social Login — Google, GitHub, Microsoft et autres
- Magic Link / Passwordless — Connexion sans mot de passe
- Authentification Multi-Facteurs — TOTP, SMS, WebAuthn
- SSO Enterprise — SAML 2.0 / OIDC
- RBAC — Contrôle d’accès basé sur les rôles
- Référence SDK — Documentation API complète
- Référence REST API — Documentation HTTP API complète