# Configuring the client (/docs/configuration)

`createAuth` builds the client from a few options. This section explains each
one, for when the defaults in [Getting started](/docs/getting-started) no
longer fit your app.

## Options [#options]

`createAuth` takes three required options and five optional ones:

| Option    | Required | What it sets                                                                                               |
| --------- | -------- | ---------------------------------------------------------------------------------------------------------- |
| `name`    | Yes      | The storage namespace: letters, digits, `_` or `-`. Keeps two apps on one origin apart.                    |
| `user`    | Yes      | A [user schema](/docs/configuration/user-schemas), or [`fromAccessToken`](/docs/client/users-from-tokens). |
| `storage` | Yes      | [Where the session is saved](/docs/configuration/storage).                                                 |
| `refresh` | No       | [How to get new tokens](/docs/configuration/refresh). Without it, an expired token signs the user out.     |
| `revoke`  | No       | [Revokes the ended tokens](/docs/client/signing-in-and-out) on your backend after a sign-out.              |
| `maxAge`  | No       | How long a saved session can be restored, in seconds. Default: 30 days, counted again from each save.      |
| `debug`   | No       | [Reports what the client does](/docs/configuration/debugging). Default: off.                               |
| `locking` | No       | [Restores a saved session as `locked`](/docs/client/locking), for native apps. Default: off.               |

## Pages in this section [#pages-in-this-section]

Each page covers one part of the client: how it checks users, gets new
tokens, saves the session, follows other tabs, and reports what happens.

<Cards>
<Card title="User schemas" href="/docs/configuration/user-schemas" description="When the schema checks users, and the rules restoring a session sets for it." />

<Card title="Refresh" href="/docs/configuration/refresh" description="What the refresh callback returns, and when a refresh runs." />

<Card title="Expiry" href="/docs/configuration/expiry" description="How the client finds out when the access token expires." />

<Card title="Storage" href="/docs/configuration/storage" description="Where the session is saved: localStorage, sessionStorage, the device, or your own store." />

<Card title="Tabs" href="/docs/configuration/tabs" description="How tabs follow each other's sign-ins, and share one refresh." />

<Card title="Errors" href="/docs/configuration/errors" description="Every AuthError code, and the failures that need a decision from you." />

<Card title="Debugging" href="/docs/configuration/debugging" description="Log what the client does, or send it to your error reporting." />
</Cards>