---
title: "GitHub"
description: "Set up GitHub as an authentication provider with Stack Auth"
---

This guide explains how to set up GitHub as an authentication provider with Stack Auth. GitHub allows users to sign in to your Stack Auth-enabled app using their GitHub account.

<Info>
  For Development purposes, Stack Auth uses shared keys for this provider. Shared keys are automatically created by Stack, but show Stack's logo on the OAuth sign-in page.
  You should replace these before you go into production.
</Info>

## Integration Steps

<Info>
  If you are unsure if you need to create a GitHub App, or a GitHub OAuth App, check the [Differences On GitHub](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/differences-between-github-apps-and-oauth-apps).
  More than likely, you will want to create a GitHub App. The installation process is the same for both.
</Info>

<Steps>
  <Step>
    ### Create a GitHub App

    1. Navigate to your [GitHub Developer App Settings](https://github.com/settings/apps).
    2. Click the **New GitHub App** button.
    3. Enter a name for your application, homepage URL, and a description.
    4. For **Authorization callback URL**, add `https://api.stack-auth.com/api/v1/auth/oauth/callback/github`
    5. For permissions, at a **minimum**, you will need **Account Permissions > Email Addresses** set to **Read Only**. Your sign-in flow will not work without this permission.
    6. Select **Any Account** under the ***Where can this GitHub App be installed*** section.
    7. Click **Create GitHub App**
    8. Save the **Client ID** and click **Generate a new client secret** to create your **Client Secret**.
  </Step>

  <Step>
    ### Enable GitHub Provider in Stack Auth

    1. On the Stack Auth dashboard, select **Auth Methods** in the left sidebar.
    2. Click **Add SSO Providers** and select **GitHub** as the provider.
    3. Set the **Client ID** and **Client Secret** you obtained from your GitHub App earlier.
  </Step>
</Steps>

***

<Accordion title="GitHub OAuth App installation">
  <Steps>
    <Step>
      ### Create an OAuth App

      1. Navigate to your [GitHub Developer Settings](https://github.com/settings/developers).
      2. Click the **New OAuth App** button.
      3. Enter a name for your application, homepage URL, and a description.
      4. For **Authorization callback URL**, add `https://api.stack-auth.com/api/v1/auth/oauth/callback/github`
      5. Click **Register application**
      6. Save the **Client ID** and click **Generate a new client secret** to create your **Client Secret**.
    </Step>

    <Step>
      ### Enable GitHub OAuth in Stack Auth

      1. On the Stack Auth dashboard, select **Auth Methods** in the left sidebar.
      2. Click **Add SSO Providers** and select **GitHub** as the provider.
      3. Set the **Client ID** and **Client Secret** you obtained from GitHub earlier.
    </Step>
  </Steps>
</Accordion>

### Need More Help?

* Check the [GitHub OAuth Documentation](https://docs.github.com/en/developers/apps/building-oauth-apps/authorizing-oauth-apps)
* Join our [Discord](https://discord.stack-auth.com)
