Meta's consumer login (still branded Facebook Login in the developer tooling and on the button itself) signs users in with their Facebook account. It reaches an audience that skews away from developer-centric providers, and it is one of the few connectors where you must plan for users with no email address.

The connector is listed as **Facebook** in the catalog and uses the provider ID `facebook-oauth20`.

## Copy the redirect URI

In the [Authdog console](https://console.authdog.com), select the project and environment, open **Authentication > Providers**, find **Facebook**, and click **Enable**. Copy the redirect URI shown in the form:

```url
https://identity.authdog.com/api/v1/callback/<connectionId>
```

## Create the Meta app

1. Open [Meta for Developers](https://developers.facebook.com/apps/) and select **Create App**.
2. Pick the **Authenticate and request data from users with Facebook Login** use case.
3. Name the app and give it a contact email.
4. From the dashboard, add the **Facebook Login** product.
5. Open **Facebook Login > Settings**.
6. Under **Valid OAuth Redirect URIs**, paste the redirect URI from Authdog.
7. Leave **Client OAuth login** and **Web OAuth login** enabled, and keep **Enforce HTTPS** on.
8. Save changes.

Then open **App settings > Basic** and copy the **App ID** and **App secret**.

> **Caution**
>
> A Meta app in **Development** mode only admits people with a role on the app , 
> admins, developers, testers. Switch it to **Live** before real users try to sign
> in, and complete the privacy policy URL and data deletion callback Meta requires
> to make that switch.

## Configure Authdog

Back in the connection form:

| Field | Value |
| --- | --- |
| **Client ID** | The Meta **App ID** |
| **Client Secret** | The Meta **App secret** |

Save, then toggle the connection **active**.

## What Meta returns

Authdog requests the `email` scope and reads the profile from the Graph API. The identifier Meta returns is app-scoped: the same person gets a different ID in a different Meta app, so credentials are not portable between environments or products.

Email is the recurring problem with this connector:

- Accounts registered with a phone number only have no email to release.
- Users can decline the email permission on the consent screen.
- An account with an unconfirmed email may return nothing.

Authdog links a returning user by the provider's stable identifier, so sign-in still works, but you cannot assume an email address exists on users who arrived through Meta. If your product requires one, prompt for it after the first sign-in.

Anything beyond `email` and public profile requires Meta's App Review, with a screencast and a written justification. Keep the connector to the default scopes unless you have a concrete reason to go through that process.

## Test it

1. Open your environment's hosted sign-in page, or link to `https://identity.authdog.com/api/v1/signin/<connectionId>`.
2. Select **Continue with Facebook** and complete the flow.
3. Confirm the user appears under **Users** with a Facebook identity linked.
4. Test once with the email permission declined, and confirm your application handles the missing address.

## Troubleshooting

| Symptom | Cause |
| --- | --- |
| `URL Blocked: This redirect failed` | The redirect URI is missing from **Valid OAuth Redirect URIs** |
| `App not active` | The app is still in Development mode |
| `Invalid Scopes` | A scope beyond the defaults has not passed App Review |
| User created with no email | The account has none, or the permission was declined, expected behaviour |

## Related

| Read | To learn how to |
| --- | --- |
| [Connectors](/docs/connectors) | Set up any other social provider |
| [Users](/docs/users) | Inspect and complete profiles after a first sign-in |
| [Apple](/docs/connectors/apple) | Handle the other provider that withholds real email addresses |
