Pourquoi je choisis NextAuth plutôt que Clerk, Supabase ou Lucia ?

Publiée le 20 février 2024 · Temps de lecture de 4 minutes · Publié par Melvynx

Pourquoi ai-je choisi NextAuth pour toutes mes applications Next.js plutôt que Clerk ou Lucia ?

C'est une question que tu pourrais légitimement te poser, et dans cet article, je vais te montrer les points qui m'ont vraiment fait aimer NextAuth.

On va voir :

  1. Pourquoi j'utilise NextAuth ?
  2. Comparaison avec Clerk ou Lucia

Pourquoi j'utilise NextAuth ?

Il y a 3 raisons principales :

  1. Les données m'appartiennent
  2. Projet Open Source actif et maintenu
  3. Facilité d'utilisation avec Next.js
  4. Next.js comme backend

Les données m'appartiennent

Très important pour moi, je veux avoir une certaine liberté de modifier moi-même l'utilisateur ou de faire des actions qui ne seraient pas autorisées par un service tiers.

Par exemple, j'ai pu implémenter dans NOW.TS un service qui permet de vérifier l'email via un code et de modifier cette valeur dans la base de données.

Tout ça, alors même que NextAuth ne m'a pas fourni cette fonctionnalité.

Projet Open Source actif et maintenu

Le projet est en passe d'une énorme migration passant de next-auth à auth.js et c'est très bien.

Son créateur et mainteneur officiel Balázs Orbán travaille pour Next.js

Il me répond sur Twitter, travaille à fond sur ce projet et ça donne envie.

Facilité d'utilisation

Même si le setup est un peu compliqué pour la première fois, je peux t'assurer qu'une fois fait, ça devient un jeu d'enfant.

Il inclut tout :

  • ResendProvider pour les emails
  • Providers pour les réseaux sociaux
  • Credentials provider

Bref, tu n'as pas trop de limites.

Tu peux personnaliser toutes les pages.

Next.js comme backend

Par contre, pour utiliser vraiment toute la puissance de next-auth, il faut utiliser Next.js comme backend. Si ce n'est pas ton cas, je te conseille de te tourner vers d'autres services.

Comparaison avec Clerk ou Lucia

Lucia

Je pense que Lucia est un super outil qui n'a pas du tout à se plaindre.

Mais voilà, c'est un projet beaucoup plus early que je n'ai pas envie d'adopter pour ne pas être un bêta-testeur de leur outil (j'en ai déjà assez fait pour NextJS app directory).

On parle de 21'000 étoiles pour NextAuth contre 6'000 pour Lucia.

On parle aussi de 22'000 posts StackOverflow contre 881 pour Lucia.

On est sur une communauté 10 fois plus grande.

S'il y a plus de communauté = plus de support = plus de ressources = plus de sécurité.

Clerk

C'est un super service si tu ne veux faire aucun effort.

Mais j'ai du mal à l'utiliser car :

  • les données ne m'appartiennent pas
  • si mon app scale, je dois payer
  • leur branding est laid

Vraiment, je n'ai pas envie d'avoir ce logo partout.

J'ai aussi envie que mon authentification et mon flux matchent avec le style général de l'application et n'aient pas un style "prédéfini".

C'est pour ça que je préfère NextAuth.

Supabase

Supabase offre une authentification simple, efficace avec des données qui sont liées à ton compte.

Mais voilà, c'est 20 $ / mois / projet et avec toutes les applications que je fais, je préfère copier / coller un fichier de 50 lignes par projet que d'ajouter 20 $ par mois par projet.

Conclusion

NextAuth est pour moi le meilleur choix pour mes applications Next.js, uniquement si ton backend est en Next.js.

Si tu souhaites avoir un autre backend, je te conseille d'utiliser d'autres outils.

Si tu souhaites avoir un setup NextAuth déjà fait avec :

  • authentification par mot de passe
  • email avec renvoi
  • des pages pour supprimer son compte / modifier son profil / changer son email

Rends-toi ici :

Récupère ton accès NOW.TS, la boilerplate Next.js pour créer des applications de PRO peu importe ton niveau.

Profite d'un cours complet afin de créer des applications SaaS rapidement et efficacement.

PrivacyTermsapp icon