Adapter Repository for NextAuth.js
Note: We have migrated the primary nextauthjs/adapters
repository to the new nextauthjs/next-auth
monorepo. All adapter code can be found there under packages/adapter-*
going forward. This repository will be deprecated and most likely archived in the future.
NextAuth.js is a complete open source authentication solution for Next.js applications.
It is designed from the ground up to support Next.js and Serverless environments.
This repository is a lerna mono-repo which is home to multiple next-auth adapters maintained by the community to support any database.
Currently, these are experimental adapters and we would appreciate feedback on them!
The two adapters with the "legacy" suffix are the adapters that currently ship with the core next-auth
package. In the future, we will be doing the following two things though:
- Removing them from the core package in the short-term
- Replacing them with their more up-to-date versions in the medium-term.
Of course, we will announce and document any such changes thoroughly before taking any action. This changes are tenatively slated for v4.0.0
.
Adapter | Version | Docs | NPM |
---|---|---|---|
typeorm-legacy | adapters/typeorm | @next-auth/typeorm-legacy-adapter | |
prisma | adapters/prisma | @next-auth/prisma-adapter | |
prisma-legacy | adapters/prisma-legacy | @next-auth/prisma-legacy-adapter | |
fauna | adapters/fauna | @next-auth/fauna-adapter | |
dynamodb | adapters/dynamodb | @next-auth/dynamodb-adapter | |
firebase | adapters/firebase | @next-auth/firebase-adapter | |
pouchdb | adapters/pouchdb | @next-auth/pouchdb-adapter |
If you already have an adapter you would like to add, please create a Pull Request and we will work with you to get it officially supported!
If you would like to also take on the maintenance of the adapter, let us know, and we would be happy to add you as a maintainer to the repository.
We have an official TypeScript Adapter
Interface, which should make complying with the existing adapter structure and the common tests, etc. much easier.
We have developed a basic set of tests that apply to all adapters, i.e. to which all adapters should conform and pass. The code can be found in basic-tests.ts
, and specific implementations of which can be found in the /tests
subdirectory of each currently available adapter.
All adapter tests should also run against a local instance of the particular database / ORM being tested. For example, for TypeORM we spin up MySQL and PostgreSQL instances via docker, seed them, and execute the test suite separately against both backends.
ISC