Additional resources
Next is a React framework that makes it easy to build fast, production-ready web apps. This guide will show you how to add Userfront to your Next.js app.
Add the UserfrontProvider
with your desired tenantId
to the root layout:
Option | Default | Description |
---|---|---|
tenantId | string | The tenant identifier, this can be found in workspace Tenants on the Userfront dashboard. |
loginUrl | string | Redirect URL for unauthenticated visitors that need to login, the default is /login . |
loginRedirect | string | Redirect URL after login, false to disable. When undefined , uses the path configured to the workspace paths & routing settings. |
signupRedirect | string | Redirect URL after signup, false to disable. When undefined , uses the path configured to the workspace paths & routing settings. |
logoutRedirect | string | Redirect URL after logout, false to disable. When undefined , uses the path configured to the workspace paths & routing settings. |
requireAuth | boolean | When true , unauthenticated visitors will be redirected to the loginUrl . |
Use @userfront/next/client
with client components. These files or functions have the "use client";
directive.
UI Toolkit components are included in this package. Import and use them without any props:
The available components are LoginForm
, SignupForm
, PasswordResetForm
and LogoutButton
.
Use the useUserfront()
hook to access the current client auth state:
In addition to the core JS library and the UserfrontProvider
properties, these are also available for use:
Property | Type | Description |
---|---|---|
isAuthenticated | boolean | Whether or not the current visitor is signed into a valid user account. |
isLoading | boolean | Whether or not Userfront has loaded and initialized. |
For example, redirect unauthenticated visitors to the login page:
Use @userfront/next/server
on the server. These files or functions should have the "use server";
directive.
Define these environment variables in your .env
or however they are configured in your application:
The SDK will use these variables when they are defined.
You may choose to instantiate the Node client instead, for example, when your secrets are retrieved asynchronously, if you're using a context, or if you prefer the greater abstraction. There are other debugging and error handling benefits as well.
Option | Default | Description |
---|---|---|
apiKey | USERFRONT_API_KEY | The secret admin API key, from Authentication / API Keys in the Userfront dashboard. |
baseUrl | 'https://api.userfront.com' | The API URL to use for requests, in case you're using a proxy or custom domain. |
version | 'v0' | The API version to use, an empty string will remove the version from requests. |
tenantId | USERFRONT_TENANT_ID | The parent workspace ID, this can be found on the Userfront dashboard. |
mode | NODE_ENV === 'production' ? 'live' : 'test' | The mode to use, live when process.env.NODE_ENV is production , otherwise test . To enable live mode, visit Live Domains in the Userfront dashboard. |
origin | undefined | The origin header for requests, this may be required in some cases. |
debug | NODE_ENV !== 'production' | Log a cURL per request, disabled when process.env.NODE_ENV is production . |
With the client, a cURL logger will be enabled by default in development environments.
Disable this by setting debug
to false
in the client options.
Responses that are not 2xx will throw a UserfrontFetcherError
. Catch them to handle Userfront errors appropriately.
Got stuck and need some help? Please do not hesistate to contact us and our team of engineers will be happy to help.