auth.session table.
@tanstack/react-query and react-hook-form are used to do much of the heavy lifting in the component. The component is styled via tailwind.
Installation
Email + Password Sign In
Uses simple<Email /> and <Password /> fields, along with the useSignIn() hook to sign a user in, if they exist. In most cases, you want to supply a callbackUrl, which is where the user will be redirected upon successful sign in. Error handling works the same as it does in <SignUpForm />
- Preview
- Component
Email Only Sign In
With an SMTP provider configured on your database, users can supply their emails and be sent a link for sign in. The users enters their email, which causes the auth service to create a token (saved to the auth.verification_tokens table in your database), and send it in an email. The token is valid for 4 hours by default. Once the user clicks the link, they will exchange their token for a session and be redirected to whichever page was provided in thecallbackUrl
- Preview
- Component
Hooks
useSignIn
TheuseSignIn hook provides a way to authenticate users using credential-based sign-in within a React application. It utilizes React Query’s useMutation to handle authentication requests and supports optional lifecycle callbacks for customization.
Installation
Usage
API
useSignIn(params?: Props): (data: LoginInfo) => void
Parameters
| Name | Type | Description |
|---|---|---|
params | Props (optional) | Configuration options |
Returns
A function that acceptsLoginInfo containing user credentials to initiate the sign-in process.
Props
| Name | Type | Description |
|---|---|---|
callbackUrl | string (recommended) | The URL to redirect to upon successful login. |
beforeMutate | (data: any) => any (optional) | Optional function executed before the mutation occurs, allowing modification of request data. |
onSuccess | (data: LoginSuccess) => void (optional) | Callback function triggered on a successful login. |
onError | (error: Error, data: any) => void (optional) | Callback function triggered if the login fails. |
client | QueryClient (optional) | React Query client instance. |
LoginInfo Type
Example with Error Handling
- Ensure that authentication providers are properly configured in your Next.js app.
- Use
beforeMutateto modify request payloads before submission. - The
callbackUrlparameter determines the redirection URL post-login.
Theming
The component is styled using tailwind. It can be customized using theclassName and buttonText props,
or using Tailwind CSS theme variables. You can find more details and full examples in the customization doc.
In addition, the hooks documented for each component can be used if you’d like to use Nile Auth with your own components.
If needed, you can peek at the source code of the component and use it as a template to create your own component for maximum customization.