Skip to content

qlaffont/next-protected-auth

Repository files navigation

Maintainability Test Coverage npm npm Snyk Vulnerabilities for npm package NPM

Next Protected Auth

Add protected routes to Next.js. Old Owner: @flexper

Usage

See example folder

API

NextAuthProtectedLogin

Options

Field Name Type Description
callback VoidFunction / AsyncVoidFunction Specify a callback after login (generally redirect to oauth portal)
authCallbackURL string Specify auth callback url in case of accessToken already exist

Return: React Component

NextAuthProtectedLogout

Options

Field Name Type Description
preCallback VoidFunction / AsyncVoidFunction Specify a callback before logout (generally send to api that user want to logout)
callback VoidFunction / AsyncVoidFunction Specify a callback after logout (generally redirect to home)

Return: React Component

NextAuthProtectedCallback

Options

Field Name Type Description
callback VoidFunction / AsyncVoidFunction Specify a callback after auth callback (generally redirect to protected routes)

Return: React Component

useNextAuthProtectedHandler

Options

Field Name Type Description
publicURLs string[] List of public URLs
loginURL string Endpoint for login (ex: /auth/login)
authCallbackURL string Endpoint for auth callback (ex: /auth)
renewTokenFct (oldAccessToken?: string) => string Function who will run to renew token (ex: refresh token)
verifyTokenFct (accessToken?: string) => string Function who test accessToken validity (ex: verify JWT token expiration)
allowNotFound boolean? Allow to consult Not found pages in public

Return: Hook who need to be use to pages/_app.tsx

useNextAuthProtected

Return: {isConnected: boolean; setIsConnected: Dispatch} // User is connected

getAndSaveAccessToken

Options

Field Name Type Description
renewTokenFct (oldAccessToken?: string) => string OR Promise Function who will run to renew token (ex: refresh token) to
accessToken string access token to save

Return: boolean (Token is saved)

getAccessToken

Return: string (Return access token)

removeAccessToken

Return: void

Maintain

This package use TSdx. Please check documentation to update this package.