> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Auth

> Manage your app's login methods using local configuration files

<div className="dev-docs-banner">
  <div className="dev-docs-banner-content">
    <div className="dev-docs-banner-title">
      You're viewing developer documentation
    </div>

    <div className="dev-docs-banner-text">
      This documentation is for developers working with the Base44 developer platform. For information about managing login methods in the app editor, see <a href="/Setting-up-your-app/Managing-login-and-registration">Managing login and registration</a>.
    </div>
  </div>
</div>

Authentication controls how your app's users sign in, register, and access its features. Auth config lets you manage login methods as a local JSONC file that you sync with Base44 using the CLI.

## Configure

Your auth config is a single JSONC file at `base44/auth/config.jsonc`. You can customize the directory path with the `authDir` property in your [project configuration](/developers/backend/overview/project-structure#config-jsonc). Pull the current config from Base44 with [`auth pull`](/developers/references/cli/commands/auth-pull), then push changes with [`auth push`](/developers/references/cli/commands/auth-push) or [`deploy`](/developers/references/cli/commands/deploy).

You can also toggle login methods from the command line with [`auth password-login`](/developers/references/cli/commands/auth-password-login) and [`auth social-login`](/developers/references/cli/commands/auth-social-login).

## Example

```jsonc theme={null}
{
  "enableUsernamePassword": true,
  "enableGoogleLogin": false,
  "enableMicrosoftLogin": false,
  "enableFacebookLogin": false,
  "enableAppleLogin": false,
  "googleOAuthMode": "default",
  "googleOAuthClientId": null
}
```

## Field reference

<ResponseField name="enableUsernamePassword" type="boolean">
  Allow users to sign in with an email address and password. Defaults to `false`.
</ResponseField>

<ResponseField name="enableGoogleLogin" type="boolean">
  Allow users to sign in with Google. Defaults to `false`.
</ResponseField>

<ResponseField name="enableMicrosoftLogin" type="boolean">
  Allow users to sign in with Microsoft. Defaults to `false`.
</ResponseField>

<ResponseField name="enableFacebookLogin" type="boolean">
  Allow users to sign in with Facebook. Defaults to `false`.
</ResponseField>

<ResponseField name="enableAppleLogin" type="boolean">
  Allow users to sign in with Apple. Defaults to `false`.
</ResponseField>

<ResponseField name="googleOAuthMode" type="&#x22;default&#x22; | &#x22;custom&#x22;">
  How Google OAuth credentials are sourced. Use `default` to use Base44-managed credentials, or `custom` to use your own OAuth client. Defaults to `default`.
</ResponseField>

<ResponseField name="googleOAuthClientId" type="string | null">
  Custom Google OAuth client ID. Only used when `googleOAuthMode` is `custom`. Set this with [`auth social-login google enable --client-id`](/developers/references/cli/commands/auth-social-login). The matching client secret is stored as a project secret, not in this file. Defaults to `null`.
</ResponseField>

<Warning>
  If your config has no login methods enabled, the CLI warns that users will be locked out when you push. Make sure at least one login method is enabled.
</Warning>

## See also

* [`auth pull`](/developers/references/cli/commands/auth-pull): Fetch auth config from Base44
* [`auth push`](/developers/references/cli/commands/auth-push): Push auth config to Base44
* [`auth password-login`](/developers/references/cli/commands/auth-password-login): Enable or disable password login
* [`auth social-login`](/developers/references/cli/commands/auth-social-login): Enable or disable social login providers
* [`deploy`](/developers/references/cli/commands/deploy): Deploy all project resources
* [Managing login and registration](/Setting-up-your-app/Managing-login-and-registration): Configure login options in the dashboard
