> For the complete documentation index, see [llms.txt](https://docs.novel.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.novel.dev/novel-server/authentication.md).

# Authentication

Novel uses industry best-practices for authenticating users. This is made possible by the `grant`library and it's support with Fastify.

We don't use an external library like OpenAuth, Auth.js, or Better Auth, as it does not fit the need of the Novel framework.

{% hint style="info" %}
This article discusses authentication coming from the server.
{% endhint %}

Novel supports the following authentication modes:

1. Email / Password
2. Magic Links
3. OAuth2

Forget Password, Email Verification, and MFA is also supported.

## Signups

You can modify how signups are handled by modifying the built in sign up endpoints and the onboarding lifecycle features in the features directory.

By default these are stored in&#x20;

<https://github.com/madewithnovel/novel/blob/main/app/api/internal/v1/auth-signup/index.ts>

and the flow goes into

<https://github.com/madewithnovel/novel/blob/main/app/features/lifecycle/signup.ts>

Learn more about it below

{% embed url="<https://docs.novel.dev/guides/knowledge-base/novel-server/setting-up-signups>" %}

## User Sessions

User sessions are the sessions usually used by your user when they interact with the frontend. These are cookie sessions.

You can have a look at what sessions are below

{% embed url="<https://docs.novel.dev/novel-server/sessions>" %}

## API Keys

API Keys are also supported when developing your endpoints. These are protected by the API Keys feature.

You can have a look at the feature below

{% embed url="<https://docs.novel.dev/novel-server/api-keys>" %}

## Single-Sign On (SSO)

{% hint style="warning" %}
SSO is not yet available as of 2025.1.0.
{% endhint %}

## Changelog

* 2024-12-20 - Initial Documentation
