Cet article est une analyse initiale basée sur les README de
laravel/passkeys-server et laravel/passkeys. Les deux packages sont en phase de développement, sans tag (à la date d’avril 2026).De quoi s’agit-il ?
Le dépôt officiel Laravel publie deux packages pour implémenter une authentification sans mot de passe (WebAuthn / passkeys).- Côté serveur (PHP) :
laravel/passkeys-server - Côté client (JavaScript) :
@laravel/passkeys
Côté serveur : laravel/passkeys-server
Installation et configuration initiale
Le fichier de configuration peut être publié si besoin.
Routes enregistrées automatiquement
| Catégorie | Méthode | Route | Rôle |
|---|---|---|---|
| Login (invité) | GET | /passkeys/login/options | Récupération des options d’authentification |
| Login (invité) | POST | /passkeys/login | Vérification de la passkey et connexion |
| Confirm (auth) | GET | /passkeys/confirm/options | Récupération des options de confirmation |
| Confirm (auth) | POST | /passkeys/confirm | Confirmation de la passkey |
| Management (auth) | GET | /user/passkeys/options | Récupération des options d’enregistrement |
| Management (auth) | POST | /user/passkeys | Enregistrement d’une nouvelle passkey |
| Management (auth) | DELETE | /user/passkeys/{passkey} | Suppression d’une passkey |
Options principales de config/passkeys.php
relying_party_idallowed_originsuser_handle_secrettimeoutguardmiddlewarethrottleredirect
Événements
Le package déclenche les événements suivants.PasskeyRegisteredPasskeyVerifiedPasskeyDeleted
Points de personnalisation
CustomActions (remplacement du traitement WebAuthn)
CustomActions (remplacement du traitement WebAuthn)
En héritant de
GenerateRegistrationOptions, GenerateVerificationOptions, StorePasskey, VerifyPasskey ou DeletePasskey et en les liant au conteneur, vous pouvez modifier leur comportement.CustomResponses (remplacement des réponses)
CustomResponses (remplacement des réponses)
En implémentant vos propres contracts comme
PasskeyLoginResponse, vous adaptez les réponses de succès (JSON, redirections, etc.) aux besoins de votre application.Côté client : @laravel/passkeys
@laravel/passkeys est un client JavaScript qui prend en charge la cérémonie WebAuthn côté navigateur.
Installation
API de base
Helpers par framework
- React :
usePasskeyVerify,usePasskeyRegisterdans@laravel/passkeys/react - Vue :
usePasskeyVerify,usePasskeyRegisterdans@laravel/passkeys/vue - Svelte :
usePasskeyVerify,usePasskeyRegisterdans@laravel/passkeys/svelte
Autofill de passkey
En spécifiantautofill: true, le sélecteur de passkeys du navigateur s’affiche pour les input ayant autocomplete="... webauthn". En cas d’environnement non supporté ou d’annulation utilisateur, le flux retombe sur le parcours classique.
Erreurs typées
Le README expose les classes d’erreur suivantes.NotSupportedErrorUserCancelledErrorPasskeyExistsErrorPasskeyError(classe de base)
Support SSR
WebAuthn est une API navigateur, mais les hooks de chaque framework sont sûrs pour le SSR. Côté serveur,isSupported est traité comme false et est mis à jour côté navigateur après le montage.
Conclusion
- La combinaison
laravel/passkeys-server(PHP) et@laravel/passkeys(JS) permet de construire une pile d’authentification par passkey complète et cohérente dans Laravel. - Les deux packages sont en phase de développement sans tag, mais il est très probable qu’ils deviennent la méthode d’authentification standard de l’écosystème officiel Laravel.
- Pour une adoption précoce, basez votre conception sur les routes, la configuration, la gestion d’erreurs et les points de personnalisation décrits dans le README.
Par la suite, les passkeys ont été officiellement ajoutées comme fonctionnalité de Laravel Fortify. Pour activer les passkeys via Fortify, utilisez
Features::passkeys() au lieu d’installer directement laravel/passkeys-server. Voir Laravel Fortify et starter kits pour les détails.laravel/passkeys-server
Consultez le README et l’implémentation du package côté serveur.
@laravel/passkeys
Consultez le README et l’API du package côté client.
Laravel Fortify et starter kits
Procédure d’activation des passkeys via Fortify et relation avec les starter kits.