GitHub is the default connector for developer tools. Create an OAuth App, paste its client credentials into the environment, and the **Continue with GitHub** button appears on hosted sign-in.

## Copy the redirect URI

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

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

## Create the OAuth app

1. Open [Developer settings > OAuth Apps](https://github.com/settings/developers).
2. Select **New OAuth App**.
3. Fill in **Application name**, **Homepage URL**, and **Authorization callback URL** (the redirect URI from Authdog).
4. Register the application.
5. Copy the **Client ID**, then select **Generate a new client secret** and copy the secret.

An OAuth App accepts exactly one callback URL, so each Authdog environment needs its own OAuth App. Name them distinctly (`Acme (dev)`, `Acme`). The name is what users see when they authorize.

> **Note**
>
> Use an **OAuth App**, not a **GitHub App**. GitHub Apps are built around repository installations. This connector expects the OAuth App authorization flow.

Create the app under an organization rather than a personal account if more than one person needs to manage it. Organization-owned apps may also need owner approval before members can authorize them.

## Configure Authdog

| Field | Value |
| --- | --- |
| **Client ID** | From the OAuth App page |
| **Client Secret** | Shown once when generated |

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

## What to expect

Authdog requests the `user` scope and links the account on GitHub's numeric ID, which stays stable if the user renames their login. The profile endpoint returns the **public** email, which is often empty. Prompt for an email after sign-up if your product needs one.

## Test it

1. Open the hosted sign-in page, or link to `https://identity.authdog.com/api/v1/signin/<connectionId>`.
2. Select **Continue with GitHub** and authorize.
3. Confirm the user appears under **Users** with a GitHub identity linked.

## Troubleshooting

| Symptom | Cause |
| --- | --- |
| `The redirect_uri MUST match the registered callback URL` | The callback URL differs from Authdog's, or you are testing the wrong environment |
| `Bad verify code` | Client secret mismatch, or a reused authorization code |
| No email on the user record | The account's email is private |
| Members cannot authorize | The organization requires owner approval for OAuth Apps |

## Related

| Read | To learn how to |
| --- | --- |
| [GitHub connector](/docs/connectors/github) | The same setup in the connector catalog |
| [Marketplace](/marketplace/github) | The listing for this integration |
| [Users](/docs/users) | Collect a verified email after a first sign-in |
