next-auth-hasura-adapter
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published


    

Hasura Adapter - NextAuth.js

Open Source. Full Stack. Own Your Data.

Bundle Size Package Version

Overview

This is the Hasura 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 the Hasura + NextAuth integration docs at hasura.io/learn/graphql/hasura-authentication/integrations/nextjs-auth.

Getting Started

  1. Install next-auth and next-auth-hasura-adapter as well as hasura-cli.
npm install next-auth next-auth-hasura-adapter hasura-cli
  1. Install the Hasura CLI, and dive into the console
hasura init
cd hasura && hasura console
  1. Add the NextAuth models to your database through SQL
CREATE EXTENSION IF NOT EXISTS pgcrypto;

SET check_function_bodies = false;

CREATE TABLE public.accounts (
    id uuid DEFAULT public.gen_random_uuid() NOT NULL,
    type text NOT NULL,
    provider text NOT NULL,
    "providerAccountId" text NOT NULL,
    refresh_token text,
    access_token text,
    expires_at bigint,
    token_type text,
    scope text,
    id_token text,
    session_state text,
    oauth_token_secret text,
    oauth_token text,
    "userId" uuid NOT NULL,
    refresh_token_expires_in bigint
);

CREATE TABLE public.sessions (
    id uuid DEFAULT public.gen_random_uuid() NOT NULL,
    "sessionToken" text NOT NULL,
    "userId" uuid NOT NULL,
    expires timestamptz
);

CREATE TABLE public.users (
    id uuid DEFAULT public.gen_random_uuid() NOT NULL,
    name text,
    email text,
    "emailVerified" timestamptz,
    image text
);

CREATE TABLE public.verification_tokens (
    token text NOT NULL,
    identifier text NOT NULL,
    expires timestamptz
);

ALTER TABLE ONLY public.accounts
    ADD CONSTRAINT accounts_pkey PRIMARY KEY (id);

ALTER TABLE ONLY public.sessions
    ADD CONSTRAINT sessions_pkey PRIMARY KEY (id);

ALTER TABLE ONLY public.users
    ADD CONSTRAINT users_email_key UNIQUE (email);

ALTER TABLE ONLY public.users
    ADD CONSTRAINT users_pkey PRIMARY KEY (id);

ALTER TABLE ONLY public.verification_tokens
    ADD CONSTRAINT verification_tokens_pkey PRIMARY KEY (token);

ALTER TABLE ONLY public.accounts
    ADD CONSTRAINT "accounts_userId_fkey" FOREIGN KEY ("userId") REFERENCES public.users(id) ON UPDATE RESTRICT ON DELETE CASCADE;

ALTER TABLE ONLY public.sessions
    ADD CONSTRAINT "sessions_userId_fkey" FOREIGN KEY ("userId") REFERENCES public.users(id) ON UPDATE RESTRICT ON DELETE CASCADE;

You can also find this file in src/data/nextauth.sql.

  1. Add this adapter to your pages/api/[...nextauth].js next-auth configuration object.
import NextAuth from "next-auth";
import { HasuraAdapter } from "next-auth-hasura-adapter";

export default NextAuth({
  providers: [],
  adapter: HasuraAdapter({
    endpoint: HASURA_API_ENPOINT,
    admin_secret: HASURA_ADMIN_SECRET,
  }),
});

Contributing

We're open to all community contributions! If you'd like to contribute in any way, please read our Contributing Guide.

License

ISC

Dependencies (0)

    Dev Dependencies (13)

    Package Sidebar

    Install

    npm i next-auth-hasura-adapter

    Weekly Downloads

    981

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    92.2 kB

    Total Files

    11

    Last publish

    Collaborators

    • amruthpillai