Set up "Sign in with Discord"

This is the full version of the wizard in the dashboard. It takes about five minutes, and costs nothing. You'll copy a client ID and a client secret into JSONPad, and one URL from JSONPad into Discord.

If you haven't read it yet, signing in with Google, GitHub and others explains how the whole flow works.

1. Create an application

  1. Open the Discord developer portal and click New Application.
  2. Name it and add an icon under General Information. Both appear on the screen where people agree to sign in.
  3. Open OAuth2 in the sidebar. This is where the client ID, the secret and the redirects live.

2. Add the redirect URL

Under Redirects, add every page sign-ins return to. Discord allows several, including http://localhost URLs, so straight back to your app is the default.

For through JSONPad mode, add this one instead:

https://api.jsonpad.io/identities/oauth/callback

The dashboard's Test sign-in always goes through JSONPad's callback URL, so add it as a redirect too if you want to use it in "straight back to your app" mode.

3. Copy the credentials

  1. On the OAuth2 page, copy the Client ID.
  2. Click Reset Secret to create a Client Secret, and copy it. Discord only shows it once, and resetting it stops the previous one working.
  3. Paste both into the JSONPad wizard, run a test sign-in, and turn Discord on with Enable.

JSONPad asks for the identify and email scopes: enough for an account id, a display name, an avatar and an email address, and nothing else.

4. Names and email addresses

Discord gives a display name (or the username if there isn't one) and an avatar, which JSONPad stores with the linked account. An email address only counts as verified once the person has confirmed it with Discord; until then the identity has no email address.

5. Going live

There's nothing to publish or have reviewed: anyone with a Discord account can sign in as soon as the application exists. Add your production return page to the group's redirect URLs, and keep separate applications for development and production if you can.

Troubleshooting

  • Invalid OAuth2 redirect_uriThe URL isn't in the application's Redirects list, exactly as JSONPad sent it.
  • invalid_clientThe client ID or secret is wrong. Reset the secret in the portal and save the new one in JSONPad.
  • invalid_grantThe sign-in code expired or was already used. Start again.
  • access_deniedThe person clicked Cancel on Discord's authorization screen.
2026-09-17