- Auth.js (anciennement NextAuth.js) est désormais maintenu et géré par l’équipe de Better Auth
- Auth.js est la bibliothèque d’authentification open source la plus largement utilisée dans l’écosystème JavaScript, et elle est employée par de nombreux sites web connus
- Auparavant, il était difficile d’implémenter directement l’authentification et la gestion des sessions, avec l’inconvénient de devoir redévelopper les mêmes briques de base dans chaque contexte
- L’équipe de Better Auth ayant reconnu les limites d’Auth.js et partagé une vision d’avenir commune, les deux projets prévoient d’unir leurs forces pour faire progresser davantage l’écosystème
- Les utilisateurs existants continueront de recevoir la maintenance, notamment les correctifs de sécurité, et pour les nouveaux projets, l’usage de Better Auth est recommandé
Présentation et annonce
- Auth.js (anciennement connu sous le nom de NextAuth.js) est désormais officiellement maintenu et géré par l’équipe de Better Auth
- Auth.js est l’une des bibliothèques d’authentification open source les plus connues de l’écosystème JavaScript, déjà utilisée par de nombreux services comme ChatGPT, Google Labs et Cal.com
Rôle et limites de l’ancien Auth.js
- Avant son intégration à Better Auth, Auth.js permettait aux développeurs de garder la maîtrise de l’authentification sans devoir consacrer beaucoup de temps aux intégrations OAuth ou à la gestion des sessions
- Mais à mesure que les applications web sont devenues plus complexes et que les besoins en authentification se sont diversifiés, des limites sont apparues plus nettement, comme le redéveloppement répétitif de fonctionnalités de base ou le manque d’extensibilité
- L’équipe existante en avait elle aussi conscience, mais, pour diverses raisons, n’a pas pu mener jusqu’au bout des améliorations fondamentales
Contexte de la fusion avec Better Auth
- L’objectif de Better Auth était de renforcer la maîtrise de l’authentification sur différents services, et sa vision était également proche de celle de l’équipe Auth.js
- Au fil des discussions internes, il est apparu que le mieux était que les deux projets n’en fassent plus qu’un
- Conscients de l’importance actuelle d’Auth.js pour d’innombrables applications, entreprises et développeurs, ils promettent de continuer à fournir des correctifs de sécurité et à réagir aux problèmes urgents
Recommandations et stratégie d’évolution de l’écosystème
- Les projets utilisant déjà Auth.js (NextAuth.js) peuvent continuer à l’utiliser sans problème
- Pour les nouveaux projets, sauf si une fonctionnalité spécifique est nécessaire — notamment la gestion de sessions stateless sans base de données — il est recommandé d’utiliser Better Auth
- La feuille de route de Better Auth prévoit également l’ajout de ces fonctionnalités. Plutôt que de poursuivre des développements en double, l’objectif est d’unifier l’écosystème pour avancer dans une direction plus constructive
Migration et remerciements à la communauté
- Un guide est proposé aux équipes qui envisagent une migration, et davantage de documentation et de ressources seront bientôt ajoutées
- De profonds remerciements sont adressés à la communauté et aux principaux contributeurs qui ont fait progresser Auth.js jusqu’ici (notamment Balázs, Thang Vu, Nico Domino, Lluis Agusti et Falco Winkler)
- Il est souligné que Better Auth est né d’Auth.js, et que la réunion des deux projets permettra à l’écosystème de l’authentification d’aller plus loin
- L’objectif de base reste inchangé : « la maîtrise de l’authentification appartient aux développeurs eux-mêmes »
5 commentaires
Les changements du côté de Next.js sont désormais si extrêmes que c’en est vraiment fatigant..
Avec quelque chose d’aussi instable, mieux vaut utiliser directement un service comme Clerk, puis, quand on a davantage d’utilisateurs, se pencher sérieusement sur la question de l’authentification à ce moment-là.
J’ai récemment essayé de créer quelque chose avec auth.js, et voilà qu’entre-temps ça a encore changé. Le web, c’est vraiment compliqué et épuisant. Et j’avais même proposé une PR parce qu’il y avait des erreurs dans la documentation et les exemples, mais ils l’ont fermée comme s’il n’y avait aucun problème, ce qui m’a beaucoup surpris. On dirait que, en interne, l’équipe ne fonctionnait pas très bien.
Auth.js - bibliothèque d’authentification pour le web
Better Auth - framework d’authentification complet pour TypeScript
Avis Hacker News
Better Auth a levé 5 millions de dollars, et c’est un peu regrettable de voir un projet entièrement gratuit être absorbé par une aventure commerciale
Voir l’historique des changements, la discussion, l’historique du changement de nom, la sortie de la bêta, l’historique des commits et l’annonce sur X (Twitter)
J’ai entendu dire qu’Auth.js était réellement utilisé chez ChatGPT, Google Labs, Cal.com, etc. En revanche, je n’ai pas vu OpenAI migrer son système d’authentification depuis Auth0, donc je me demande ce qui s’est passé exactement
Ce framework a rendu la gestion de l’authentification tellement simple qu’on n’a presque plus besoin d’y penser. La configuration est facile, et l’usage reste cohérent d’un framework à l’autre. C’est rassurant de voir que ces avantages devraient continuer à exister
Quand quelqu’un a demandé si Better Auth était « meilleur qu’auth.js ? », ma première pensée a été « eh bien, oui », et finalement c’est effectivement ce qui s’est passé
J’aimerais qu’il existe une solution d’authentification aussi simple en Go
GitHub de decent-auth
J’ai utilisé les deux produits et j’en étais personnellement satisfait. Je trouve bien que les deux projets collaborent
J’utilise Clerk en ce moment et cela a l’air correct. Il y a toujours des rumeurs sur tout, mais moi je veux surtout me concentrer sur le développement
Du point de vue d’un développeur, Better Auth me paraît simplement meilleur parce qu’il pousse la simplicité au maximum
Cette nouvelle me déçoit, parce qu’elle donne l’impression que le développement d’Auth.js va pratiquement s’arrêter. J’aimais beaucoup le fait qu’avec la simple implémentation fonctionnelle d’Auth.js, je pouvais l’utiliser parfaitement derrière mon API GraphQL. Mais Better Auth a des types de données qui varient selon les plugins, au point de devenir trop génériques, presque comme du
anyen TypeScript. En plus, la responsabilité du schéma de base de données et des migrations est déléguée aux développeurs de plugins. Je trouve cela excessif pour une bibliothèque d’authentification, et cette architecture ne me plaît pas. On peut certes créer un adaptateur séparé, mais même cette interface exige d’implémenter un exécuteur de requêtes arbitraires de type SQL trop générique, ce qui fait perdre le contrôle direct sur le schéma. Les migrations, elles aussi, sont simplement reçues comme des chaînes de code puis évaluées viaeval, ce qui ne facilite pas le contrôle de sécurité.Depuis le début, j’essayais de ne pas avoir de préjugés contre Better Auth, même si l’attention semblait davantage portée sur le fait que le développeur soit autodidacte ou jeune que sur une réelle nouveauté technique, mais il semble que ces inquiétudes n’étaient pas totalement infondées. Cela reste malgré tout préférable à l’abandon d’Auth.js, mais cela montre surtout à quel point l’état des bibliothèques open source d’authentification dans l’écosystème JS est décevant.
Exemple d’implémentation d’adaptateur, article TechCrunch sur le développeur
Trois heures seulement après l’annonce de Better Auth, la mention liée à Vercel a été supprimée d’un commit GitHub