GitHub Sign-In
Adds a Continue with GitHub button to the login page, backed by an OAuth App you own. Read OAuth Sign-In Methods first — it explains when you need your own app (self-hosted deployments do; KnoxCall Cloud does not) and which scope to save under. Before you start- Owner access to the GitHub organization that should own the app. You can create the app under a personal account, but an app owned by a person dies with that person’s account.
- The Authorized redirect URI from the KnoxCall card — Settings → Integrations → OAuth Sign-In Methods → GitHub. Self-hosted: set
GITHUB_OAUTH_REDIRECT_URIfirst, as described here.
1. Create the OAuth App
Use an OAuth App, not a GitHub App: sign-in is the OAuth web flow, and a GitHub App adds installation and permission machinery KnoxCall does not use.- Organization → Settings → Developer settings → OAuth Apps → New OAuth App. (For a personal account: your profile → Settings → Developer settings.)
- Application name: for example
KnoxCall. Homepage URL: your KnoxCall URL. - Authorization callback URL: the value from the KnoxCall card:
- KnoxCall Cloud:
https://auth.knoxcall.com/callback - Self-hosted:
https://<your host>/auth/github/callback(the value ofGITHUB_OAUTH_REDIRECT_URI)
- KnoxCall Cloud:
- Leave Enable Device Flow off. Register application.
- On the app page copy the Client ID, then Generate a new client secret and copy it — GitHub shows it once.
2. Enter it in KnoxCall
Settings → Integrations → scope → OAuth Sign-In Methods → GitHub tab:
Save.
3. Verify
Open the login page in a private window and click Continue with GitHub. GitHub asks the person to authorise the app forread:user and user:email; a first-time account is linked to an existing KnoxCall account with the same verified email, or created.
Things that bite
- Exactly one callback URL per OAuth App. Unlike Google, a GitHub OAuth App cannot hold both a staging and a production callback. Create one app per KnoxCall environment.
- Verified email required. KnoxCall reads the person’s email through
user:emailand only accepts a verified address. A GitHub account whose addresses are all unverified is refused witherror=unverified_email; a private email is fine — the scope reads it even when it is hidden from the public profile. - Organization-owned apps and third-party access restrictions. If the organization restricts third-party OAuth access, an app owned by that organization is exempt; an app owned by a personal account may be blocked from reading membership, though sign-in itself does not need it.
- Rotating the secret. Generating a new client secret does not revoke the old one until you delete it, so you can generate, save in KnoxCall, then delete the old secret with no gap.
- A stored row wins over environment variables. Deleting the row on a self-hosted host that still carries
GITHUB_OAUTH_CLIENT_ID/_SECRETfalls back to those.
Related
- OAuth Sign-In Methods — scopes, account matching, environment variables, troubleshooting
- Google · Microsoft Entra ID