TypeORM 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.
Getting Started
- Install
next-auth
and@next-auth/typeorm-adapter
npm install next-auth @next-auth/typeorm-adapter
- Add this adapter to your
pages/api/[...nextauth].js
next-auth configuration object.
import NextAuth from "next-auth"
import Providers from "next-auth/providers"
import Adapter from "@next-auth/typeorm-adapter"
// For more information on each option (and a full list of options) go to
// https://next-auth.js.org/configuration/options
export default NextAuth({
// https://next-auth.js.org/configuration/providers
providers: [
Providers.Google({
clientId: process.env.GOOGLE_ID,
clientSecret: process.env.GOOGLE_SECRET,
}),
],
adapters: Adapter({
type: 'sqlite', // or mysql, postgresql, mssql
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.
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: next-auth.js.org/schemas/mysql
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: next-auth.js.org/schemas/postgres
MsSQL
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: next-auth.js.org/schemas/mssql
Contributing
We're open to all community contributions! If you'd like to contribute in any way, please first read our Contributing Guide.
License
ISC