A Slonik adapter for NextAuth. The heavy work for this project was done in this PR: nextauthjs/next-auth#4933
npm i nextauth-slonik
# or yarn
yarn add nextauth-slonik
# or pnpm
pnpm install nextauth-slonik
import NextAuth, { NextAuthOptions } from "next-auth";
import SlonikAdapter from "nextauth-slonik";
import { createPool } from "slonik";
// Enable top level await: https://stackoverflow.com/a/68339259
const pool = await createPool("postgres://");
export const auth: NextAuthOptions = {
adapter: SlonikAdapter(pool),
providers: [
...
],
};
export default NextAuth(auth);
create table if not exists verification_token (
identifier text not null,
expires timestamptz not null,
token text not null,
primary key (identifier, token)
);
create table if not exists accounts (
id serial primary key,
user_id integer not null,
"type" varchar(255) not null,
provider varchar(255) not null,
provider_account_id varchar(255) not null,
refresh_token text,
access_token text,
expires_at bigint,
id_token text,
scope text,
session_state text,
token_type text
);
create table if not exists sessions (
id serial primary key,
user_id integer not null,
expires timestamptz not null,
session_token varchar(255) not null
);
create table if not exists users (
id serial primary key,
name varchar(255),
email varchar(255),
email_verified timestamptz,
image text
);