/adapters

next-auth adapters that are maintained by the community to support any database.

Primary LanguageTypeScriptISC LicenseISC


NextAuth.js Adapters

Adapter Repository for NextAuth.js

Overview

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.

Getting Started

This repository is a lerna mono-repo which is home to multiple next-auth adapters maintained by the community to support any database.

Adapters

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:

  1. Removing them from the core package in the short-term
  2. 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 npm adapters/typeorm @next-auth/typeorm-legacy-adapter
prisma npm adapters/prisma @next-auth/prisma-adapter
prisma-legacy npm adapters/prisma-legacy @next-auth/prisma-legacy-adapter
fauna npm adapters/fauna @next-auth/fauna-adapter
dynamodb npm adapters/dynamodb @next-auth/dynamodb-adapter
firebase npm adapters/firebase @next-auth/firebase-adapter
pouchdb npm adapters/pouchdb @next-auth/pouchdb-adapter

Contributing

Creating a database 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.

TypeScript

We have an official TypeScript Adapter Interface, which should make complying with the existing adapter structure and the common tests, etc. much easier.

Testing

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.

Publishing

License

ISC