# Sharing sites with basic authentication

Expose allows you to share your local sites with custom basic authentication credentials.

This is useful, if you have a static subdomain that you share with someone else, for example a client, and you want to provide some additional security to it. Before someone can access your shared site, they need to provide the correct credentials.

To ask visitors for their email address instead of a password, see [Magic Authentication](https://expose.dev/docs/client/magic-authentication).

> **Warning**: You can not add basic authentication to a website that already uses basic authentication.

To share your site with basic authentication, use:

```bash
expose --basicAuth="admin:secret"
```

Or if you want to use the explicit sharing:

```bash
expose share my-site.test --basicAuth="admin:secret"
```

This will share the local URL my-site.test with the username "admin" and the password "secret".

You can also use the basic authentication parameter in addition to a custom subdomain:

```bash
expose share my-site.test --subdomain=site --basicAuth="admin:secret"
```

You can define an `auth` key with `username` and `password` within the [expose.yml](https://expose.dev/docs/advanced-usage/expose-yaml) file in your project and omit the parameter when sharing a site from the project directory.
