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.