Github OAuth
Learn how to configure Github OAuth.
Register a Github OAuth App
Login to Github
Go to Github and login.
Click on your profile icon in the top right corner and select Settings
.
For an app owned by an organization:
- Click Your organizations.
- To the right of the organization, click Settings.
Developer settings
In the left sidebar, click on Developer settings
at the bottom.
Fill in the App information
Type your app name and description.
Fill in the production Homepage URL.
Note that I am using the app
subdomain in the production URL.
Make sure to include the correct production URL of your application.
If you don't have a production URL yet, you can use http://localhost:3000
for now.
Fill in the User authorization callback URL
Add the User authorization callback URL.
Additionally, you can add the production URL as well like so:
Keep the default values for the rest of the fields.
Disable Webhooks
Uncheck the Active
checkbox below the Webhook
section.
Permissions
Click on the Account permissions
accordion and select the read-only permission for Email addresses
.
Leave everything else as is and click on Create Github App
.
Generate a private key
Scroll down to the Private keys
section and click Generate a private key
.
You won't actually need this key for the OAuth flow.
Copy the Client ID and Client Secret
Scroll up to the top of the page and copy the Client ID
and paste it beside GITHUB_CLIENT_ID
in the .env
file.
Below the Client secrets
section click on Generate a new client secret
button.
Copy the client secret and paste it beside GITHUB_CLIENT_SECRET
in the .env
file.
Restart the server
Congratulations! You can now use Github OAuth in your application.
Navigate to http://localhost:3000/signin and click on "Sign in with Github" to test the authentication.
Make sure to restart the server after adding the client ID and client secret in the .env
.
It may take a few minutes for the Github OAuth to work after creating the Github OAuth app.
After a successful login, we won't be able to move past the onboarding screen until either Stripe or Lemon Squeezy is configured. Alternatively, you can temporarly disable the onboarding flow in the packages/utils/src/constants/featureFlags.ts
file.
Last updated on