# User Authentication

{% hint style="info" %}
[Upgrade your free account](/get-started/unlock-power-features-to-create-interactive-apps.md) to the **Bravo** **Solo Plan** to use this feature.
{% endhint %}

Adding user authentication, your app users will be able to create an account and log in before accessing the app contents.

Bravo supports the following authentication methods:

* OAuth 2.0
* Firebase login
* Custom Authentication

Using any of these methods you leverage the logic needed to handle account registration, login and user storage to a third party tool depending on each method. As everything with Bravo, you can also use your own backend if you want to have full control over the user data (setting up your own OAuth 2.0 server for instance).

Both Firebase and OAuth 2.0 support token refresh, which will allow the app users to stay logged in for a longer time. Therefore, those two methods are **recommended when possible**.

## Firebase login

This is **the** **quickest and more straightforward method** to support user accounts in Bravo. The setup is quite simple and it allows you to provide login by email & password and by phone.

{% content-ref url="/pages/-MhNLHBUAjNK2\_2VFaQX" %}
[User login with Firebase](/integrations/user-authentication/app-login-firebase.md)
{% endcontent-ref %}

## OAuth 2.0

OAuth 2.0, which stands for “Open Authorization”, is now the de facto industry standard for online authorization. This is the option if you want to have **social login** (Login with Google, Apple, Facebook, Spotify...) and more.

{% content-ref url="/pages/-MlBE\_SZHg\_oMte8TcdI" %}
[🧙🏽Authentication with OAuth 2.0](/integrations/user-authentication/oauth2.md)
{% endcontent-ref %}

## Custom Authentication

Custom authentication will allow you to use the backend tool of your choice to authenticate users, as well as being the database for the app. The tool must be able to handle authentication assets, such as credentials and tokens. This is the one if you want to use **Xano, Backendless or Bubble.**

{% content-ref url="/pages/Sv4cxwDosZQRrsbvH2Vb" %}
[Authentication with custom backend](/integrations/user-authentication/authentication-with-custom-backend.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.bravostudio.app/integrations/user-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.
