# Users & Authentication

## Enabling Authentication

Authentication is enabled on a per-page basis in BetterForms. In the general tab of the page editor, you can toggle authentication on or off for that page.

If authentication is enabled for the page that user is trying to visit, BetterForms will not allow any user to load that page unless they are logged in. Non-authenticated users who attempt to access a restricted page will be redirected to login. After login, they are redirected back to the page they were trying to access. To override this behavior you can add a [path action](/v1/reference/actions-processor/actions_overview/path.md) in the **onLogin** hook script.

## User Registration

Users in your BetterForms web app are stored within the **Users** table of your [helper file](/v1/getting-started/integration/installation.md#what-is-the-helper-file). When a user registers for an account on your site, they provide an email and a password. As long as their email address is unique, a new record will be created in your Users table. Their password is stored as a one-way hash.

Then, a verification link is sent to verify their email address. When they click the link in that email, their record in the Users will have the **isVerified** field set to `True`.

{% hint style="warning" %}
Since email sending happens on your FileMaker server, you must configure your email server settings at the end of the **BF - Common Hooks > onAuthNotifier** script that you pasted into your legacy FileMaker file during [setup](/v1/getting-started/integration/3.-copy-custom-functions-and-scripts.md).
{% endhint %}

Users must also have the **isEnabled** field of their user record set to `True` before they can login. This can be configured to occur automatically, or based on any business logic that you choose to implement in your legacy FileMaker file.

To easily manage the users in this table, an API script is available for you to call from your legacy FileMaker file. Learn more here:

{% content-ref url="/pages/-LlI3dT8sk0uHd\_5C7VS" %}
[Managing User Accounts](/v1/reference/users-and-authentication/managing-users.md)
{% endcontent-ref %}

## Customizing Your Login/Registration Pages

For full control over the style and behavior of all the pages related to login, registration, password resets, etc, see this guide:

{% content-ref url="/pages/-Ll3OG6bVwd0h-o49wNj" %}
[Custom Login Pages](/v1/reference/users-and-authentication/custom-login-pages.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.klai.studio/v1/reference/users-and-authentication.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
