# Github - Social login (SSO) configuration

Enabling `Sign in with Github` only requires two fields: **Client ID** and **Client Secret**. Both of these are provided by Github, and these steps will help you create them.

Github provides two separate ways to integrate with PropelAuth. The [OAuth App method](https://docs.propelauth.com/sso/social-login/github#o-auth-app-instructions) is easiest, but is limited by only allowing one callback URL. This means that you'll only be able to integrate with one of your environments at a time.

If you want to add multiple callback URLs or want to add additional scopes than our integration requires, you should use the [Github App method](https://docs.propelauth.com/sso/social-login/github#github-app-instructions) instead.

Users that sign up via Github look the same as users that sign up via any other method. Your code will handle both automatically.

## [OAuth App Instructions](https://docs.propelauth.com/sso/social-login/github#o-auth-app-instructions)

1. Start by going to [https://github.com/](https://github.com/) and signing in.
2. In the top right corner, click on your avatar followed by **Settings**.

3. In your settings page, navigate to the bottom of the left navbar and click on **Developer Settings**.

4. Make sure to click on **OAuth Apps** followed by **New OAuth App**.

5. Name your app and provide a homepage URL. For the **Authorization callback URL**, copy/paste the **Authorized Redirect URL** from PropelAuth.

6. Copy the **Client ID** and **Client Secret** from Github into PropelAuth.

Once you have gone live, do not forget to add your Production URL as the **Authorization callback URL**.

And that's it! When you go to your hosted authentication pages, you should see the `Sign in with Github` button.

## [Github App Instructions](https://docs.propelauth.com/sso/social-login/github#github-app-instructions)

1. Start by going to [https://github.com/](https://github.com/) and signing in.
2. In the top right corner, click on your avatar followed by **Settings**.

3. In your settings page, navigate to the bottom of the left navbar and click on **Developer Settings**.

4. Make sure to click on **Github Apps** followed by **New Github App**.

5. Name your app and provide a homepage URL. For the **Callback URLs**, copy/paste the **Authorized Redirect URLs** from PropelAuth. You can add more by clicking on **Add Callback URL**.

6. Select both **Request user authorization (OAuth) during installation** and **Expire user authorization tokens**.

7. Under **Permissions**, select **Account permissions**. For **Email addresses** select **Read-only**.

Feel free to add more permissions if your application requires it. However, you'll need to redirect your users to authorize Github a second time with the additional scopes. PropelAuth will automatically store the Github access token for you. [See here for more information](https://docs.propelauth.com/reference/api/social-login#fetch-user-o-auth-tokens)

8. Towards the bottom, select **Any account** under **Where can this GitHub App be installed** and click **Save**.

9. Copy the **Client ID** and **Client Secret** from Github into PropelAuth.

Once you have gone live, do not forget to add your Production URL as the **Authorization callback URL**.

And that's it! When you go to your hosted authentication pages, you should see the `Sign in with Github` button.
