- Auth.js (früher: NextAuth.js) wird jetzt vom Better-Auth-Team gepflegt und betreut
- Auth.js ist die am weitesten verbreitete Open-Source-Authentifizierungsbibliothek im JavaScript-Ökosystem und wird auf vielen bekannten Websites eingesetzt
- Zuvor war es schwierig, Authentifizierung und Session-Management direkt selbst zu implementieren, und es war umständlich, an jedem Einsatzort dieselben Grundbausteine immer wieder neu zu entwickeln
- Da das Better-Auth-Team die Grenzen von Auth.js erkannt und eine gemeinsame Zukunftsvision geteilt hat, planen die beiden Projekte, durch ihren Zusammenschluss das Ökosystem weiterzuentwickeln
- Bestehende Nutzer erhalten weiterhin Wartung, etwa Sicherheits-Patches, und für neue Projekte wird die Nutzung von Better Auth empfohlen
Einführung und Ankündigung
- Auth.js (früher als NextAuth.js bekannt) wird jetzt offiziell vom Better-Auth-Team gepflegt und betreut
- Auth.js ist eine der bekanntesten Open-Source-Authentifizierungsbibliotheken im JavaScript-Ökosystem und wird bereits von vielen Diensten eingesetzt (ChatGPT, Google Labs, Cal.com usw.)
Rolle und Grenzen des bisherigen Auth.js
- Vor der Integration in Better Auth ermöglichte Auth.js es Entwicklern, Authentifizierungsfunktionen zu besitzen, ohne viel Zeit in OAuth-Integrationen oder Session-Management investieren zu müssen
- Mit zunehmender Komplexität von Webanwendungen und vielfältigeren Authentifizierungsanforderungen traten jedoch Grenzen wie die wiederholte Entwicklung grundlegender Funktionen oder mangelnde Erweiterbarkeit deutlich hervor
- Auch das bisherige Team war sich dessen bewusst, konnte aus verschiedenen Gründen jedoch keine grundlegenden Verbesserungen umsetzen
Hintergrund der Zusammenführung mit Better Auth
- Das Ziel von Better Auth war es, die Kontrolle über Authentifizierung in unterschiedlichen Diensten zu stärken, und diese Vision war der des Auth.js-Teams sehr ähnlich
- Im Zuge interner Diskussionen wurde klar, dass es die beste Lösung ist, die beiden Projekte zu vereinen
- In dem Bewusstsein, wie wichtig Auth.js für zahllose Anwendungen, Unternehmen und Entwickler ist, wird eine kontinuierliche Versorgung mit Sicherheits-Patches sowie Reaktion auf dringende Probleme zugesichert
Empfehlungen und Strategie zur Weiterentwicklung des Ökosystems
- Projekte, die Auth.js (NextAuth.js) bereits verwenden, können es weiterhin problemlos nutzen
- Für neue Projekte wird Better Auth empfohlen, sofern nicht bestimmte Funktionen benötigt werden (insbesondere stateless Session-Management ohne Datenbank)
- Diese Funktionen stehen ebenfalls auf der Roadmap von Better Auth. Statt doppelter Entwicklung soll das Ökosystem zu einer Einheit zusammengeführt und in eine produktivere Richtung weiterentwickelt werden
Migration und Dank an die Community
- Teams, die eine Migration in Betracht ziehen, erhalten einen Leitfaden; weitere Dokumentation und Materialien sollen bald ergänzt werden
- Der Community und den wichtigsten Mitwirkenden, die Auth.js bis heute weiterentwickelt haben (insbesondere Balázs, Thang Vu, Nico Domino, Lluis Agusti, Falco Winkler), wird tiefer Dank ausgesprochen
- Es wird betont, dass Better Auth seinen Ausgangspunkt in Auth.js hatte und dass die Authentifizierungslandschaft durch die Zusammenführung der beiden Projekte weiter vorangebracht werden kann
- Das grundlegende Ziel bleibt unverändert: „Die Kontrolle über Authentifizierung liegt bei den Entwicklern selbst“
5 Kommentare
Die Veränderungen rund um Next.js sind inzwischen so extrem, dass die Ermüdung ziemlich groß ist..
Etwas so Instabiles zu verwenden ist wohl weniger sinnvoll, als einfach so etwas wie Clerk zu nutzen und sich erst dann ernsthaft mit dem Thema Authentifizierung zu beschäftigen, wenn die Zahl der Nutzer steigt.
Ich habe vor Kurzem etwas mit auth.js gebaut, und in der Zwischenzeit hat sich schon wieder etwas geändert. Der Web-Bereich ist wirklich ziemlich unerquicklich und ermüdend. Außerdem habe ich sogar versucht, einen PR einzureichen, weil es Fehler in der Dokumentation und den Beispielen gab, aber das wurde einfach mit der Haltung geschlossen, es gäbe kein großes Problem. Das war ziemlich befremdlich. Es wirkte, als hätte das Team intern nicht besonders gut funktioniert.
Auth.js – eine Authentifizierungsbibliothek für das Web
Better Auth – ein umfassendes Auth-Framework für TypeScript
Hacker-News-Kommentare
Better Auth hat 5 Millionen US-Dollar an Finanzierung eingesammelt; es ist schade zu sehen, wie ein vollständig kostenloses Projekt in ein kommerzielles Venture eingegliedert wird
Siehe Historie, Diskussion, Umbenennungs-Commit, Beta-Release, Commit-Verlauf, Ankündigung auf X (Twitter)
Ich habe gehört, dass Auth.js tatsächlich bei ChatGPT, Google Labs, Cal.com und anderen im Einsatz ist. Allerdings habe ich nicht gesehen, dass OpenAI sein Authentifizierungssystem von Auth0 weg migriert hätte, daher frage ich mich, ob da etwas passiert ist
Dieses Framework hat es so einfach gemacht, dass man sich um Authentifizierung praktisch gar nicht mehr kümmern muss. Die Einrichtung ist simpel, und die Nutzung ist über verschiedene Frameworks hinweg konsistent. Gut zu sehen, dass diese Vorteile wohl erhalten bleiben
Als jemand fragte, ob Better Auth „besser als auth.js“ sei, dachte ich spontan: „Na ja, besser als auth.js eben“ — und letztlich ist es genau so gekommen
Ich wünschte, es gäbe auch für Go eine so einfache Authentifizierungslösung
decent-auth auf GitHub
devisein Rails oder das User-Modell in Django. Im entsprechenden reddit-Thread werden auch mehrere Alternativen genanntIch habe beide Produkte verwendet und war persönlich zufrieden; es ist schön, dass die beiden Projekte nun zusammenarbeiten
Ich nutze gerade Clerk und es wirkt okay. Über alles gibt es Gerüchte, aber ich will mich erst einmal auf die Entwicklung konzentrieren
Aus Entwicklersicht maximiert Better Auth die Einfachheit so sehr, dass es sich einfach wie die bessere Lösung anfühlt
Diese Nachricht fühlt sich enttäuschend an; faktisch scheint die Weiterentwicklung von Auth.js eingestellt zu werden. Ich mochte es, dass ich Auth.js mit seiner einfachen Funktionsimplementierung perfekt hinter meiner GraphQL-API einsetzen konnte. Better Auth dagegen hat je nach Plugin unterschiedliche Datentypen und wirkt dadurch zu allgemein, fast wie TypeScript-
any. Außerdem wird die Verantwortung für Datenbankschema-Design und Migrationen an die Plugin-Entwickler delegiert. Für eine Authentifizierungsbibliothek ist mir das zu viel, und diese Struktur gefällt mir nicht. Man kann zwar eigene Adapter bauen, aber selbst dafür muss man einen zu allgemeinen SQL-ähnlichen Executor für beliebige Queries implementieren, wodurch die direkte Kontrolle über das Schema verloren geht. Migrationen werden zudem einfach als Code-Strings entgegengenommen und perevalausgeführt, was Sicherheitskontrollen ebenfalls erschwert.Ich wollte Better Auth nicht voreingenommen beurteilen, obwohl schon länger der Eindruck bestand, dass eher die Tatsache Aufmerksamkeit bekommt, dass der Entwickler Autodidakt oder jung ist, als echte technische Innovation. Aber diese Bedenken scheinen offenbar nicht völlig unbegründet zu sein. Immerhin ist es wohl besser als der Zustand, in dem Auth.js einfach vernachlässigt wird, aber es zeigt auch, wie unbefriedigend der Stand von Open-Source-Authentifizierungsbibliotheken im JS-Ökosystem ist.
Beispiel für eine Adapter-Implementierung, TechCrunch-Artikel über den Entwickler
Drei Stunden nach der Better-Auth-Ankündigung wurde ein Hinweis zu Vercel aus einem GitHub-Commit entfernt