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 |
