TypeORM (Legacy) Adapter - NextAuth.js
Open Source. Full Stack. Own Your Data.
Overview
This is the TypeORM Adapter for next-auth
. This package can only be used in conjunction with the primary next-auth
package. It is not a standalone package.
You can find more TypeORM information in the docs at next-auth.js.org/adapters/typeorm.
Getting Started
- Install
typeorm
, next-auth
and @next-auth/typeorm-legacy-adapter
npm install next-auth @next-auth/typeorm-legacy-adapter@next typeorm
- Add this adapter to your
pages/api/[...nextauth].js
next-auth configuration object.
import NextAuth from "next-auth"
import { TypeORMLegacyAdapter } from "@next-auth/typeorm-legacy-adapter"
export default NextAuth({
providers: [],
adapter: TypeORMLegacyAdapter({
type: 'sqlite',
database: ':memory:',
synchronize: true
}),
...
})
The synchronize
option in TypeORM will generate SQL that exactly matches the documented schemas for MySQL and Postgres.
However, it should not be enabled against production databases as it may cause data loss if the configured schema does not match the expected schema!
Options
This adapter supports MySQL, PostgreSQL, SQLite, as well as MSSQL. Further configuration options are listed below.
If you're looking for MongoDB support, it's been pulled out into its own adapter @next-auth/mongodb-adapter.
SQLite
With sqlite, you have the option of using a file on disk as the database, or using a temporary in-memory database. In the database
field you can either pass in a valid file path to the on-disk database you want to use, or simply write :memory:
for an in-memory database which will disappear whenever you restart the process.
MySQL
For MySQL, simply pass a valid connection string to the database
option, such as mysql://nextauth:password@127.0.0.1:3306/nextauth?synchronise=true
, and do not forget to set the type
value to mysql
.
Schema: mysql/schema.sql
PostgreSQL
For PostgreSQL, you also only need to pass a valid connection string to the database
option, such as postgres://nextauth:password@127.0.0.1:5432/nextauth
, and do not forget to set the type
value to postgres
.
Schema: postgresql/schema.sql
Microsoft SQL Server
For MsSQL, pass a valid connection string to the database
option, such as mssql://nextauth:password@127.0.0.1:1433/nextauth
, and do not forget to set the type
value to mssql
.
Schema: mssql/schema.sql
Contributing
We're open to all community contributions! If you'd like to contribute in any way, please read our Contributing Guide.
License
ISC