WordPress.com signs users in with their WordPress.com account, including users of Jetpack-connected self-hosted sites.

## Copy the redirect URI

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

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

## Create the application

1. Open the [WordPress.com developer applications page](https://developer.wordpress.com/apps/) and create an application.
2. Fill in the name, description, and website URL.
3. Under **Redirect URLs**, paste the redirect URI from Authdog.
4. Set the **Type** to **Web Client**.
5. Save, then copy the **Client ID** and **Client Secret**.

## Configure Authdog

| Field | Value |
| --- | --- |
| **Client ID** | The client identifier from the provider |
| **Client Secret** | The client secret from the provider |

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

## What WordPress.com returns

Authdog requests the `global` scope and reads the profile from `https://public-api.wordpress.com/rest/v1.1/me`.

The `/me` endpoint returns the user id, username, display name, email and its verified flag, avatar, and primary site.

This connector authenticates WordPress.com accounts. It does not sign in users of an arbitrary self-hosted WordPress installation.

## Test it

1. Open your environment's hosted sign-in page, or link to `https://identity.authdog.com/api/v1/signin/<connectionId>`.
2. Select the WordPress.com button and complete the flow.
3. Confirm the user appears under **Users** in the console with a WordPress.com identity linked.

## Troubleshooting

| Symptom | Cause |
| --- | --- |
| `invalid_client` | The app type is not Web Client, so no secret applies |
| `unauthorized` | The redirect URL is missing from the app |
| Redirect or callback URL error | The URI registered with the provider does not match Authdog's exactly |
| Works in one environment only | Each environment has its own `connectionId`, and so its own redirect URI to register |

## Related

| Read | To learn how to |
| --- | --- |
| [Connectors](/docs/connectors) | Set up any other social provider |
