Oathwall
Docs

Provider Setup Guide

Oathwall acts as a secure middleware between your game and OAuth providers. You bring your own credentials — we handle the entire auth flow, token rotation, and session management.

This guide covers two things: how to get the credentials you need from each provider's developer console, and how to add them to your Oathwall app through the dashboard.

Google
Client ID + Secret
Facebook
App ID + Secret
Apple
Service ID + Key
Steam
Web API Key
Discord
Client ID + Secret
GitHub
Client ID + Secret
Epic Games
Client ID + Secret
Twitch
Client ID + Secret
Twitter / X
Client ID + Secret
Microsoft
Client ID + Secret
Why bring your own credentials? We never share your players' data with other apps on our platform. Each provider account is yours — you own the OAuth app, we just run the flow.

Google

Google Sign-In uses OAuth 2.0. You'll create credentials in the Google Cloud Console and get a Client ID and a Client Secret.

Required fields

FieldDescriptionExample
Client IDYour OAuth 2.0 client identifier.123456789-abc.apps.googleusercontent.com
Client SecretThe secret paired with your Client ID.GOCSPX-xxxxxxxxxxxx

Step-by-step

1

Open Google Cloud Console

Go to console.cloud.google.com and sign in with your Google account.

2

Create or select a project

Click the project dropdown at the top left and either select an existing project or click New Project. Give it a name that identifies your game (e.g. My Game — Auth).

3

Configure the OAuth consent screen

Navigate to APIs & Services → OAuth consent screen. If you haven't done this before, you'll need to set it up first.

  • Choose External as the user type (unless you have Google Workspace).
  • Fill in the app name, support email, and developer contact email.
  • On the Scopes step, add openid, email, and profile.
  • You don't need to add test users unless the app is in testing mode.
  • Save and continue through the remaining steps.
4

Create OAuth 2.0 credentials

Navigate to APIs & Services → Credentials. Click + Create Credentials → OAuth client ID.

  • Application type: Web application
  • Name: anything descriptive (e.g. Oathwall)
5

Add the redirect URI

Under Authorized redirect URIs, click Add URI and enter the Oathwall callback URL:

text
https://sso.oathwall.com/auth/callback
The redirect URI must match exactly — including the protocol and no trailing slash. Google will reject requests with a different URI.
6

Copy your credentials

Click Create. A dialog will show your Client ID and Client Secret. Copy both — you'll paste them into the Oathwall dashboard.

You can always retrieve the Client ID from the Credentials list page. However, to see the Client Secret again you'll need to click the credential and show it.

Facebook

Facebook Login is part of the Meta for Developers platform. You'll create a Meta App to get an App ID and App Secret.

Required fields

FieldDescriptionExample
App IDYour Meta app identifier (public).1234567890123456
App SecretThe secret paired with your App ID.abc123def456...

Step-by-step

1

Open Meta for Developers

Go to developers.facebook.com and log in with a Facebook account that has developer access.

2

Create a new app

Click My Apps → Create App. When prompted for an app type, choose Consumer (for games targeting regular users) or Business if you're operating under a business portfolio.

  • Fill in the display name for your app (shown to users during login).
  • Optionally link a Business Account.
  • Click Create App.
3

Add Facebook Login product

On the app dashboard, find the Add a product section and click Set up next to Facebook Login. Choose Web as the platform.

When it asks for a site URL, you can enter your game's website or just skip this step — the important configuration is done in the next step.

4

Set the redirect URI

Go to Facebook Login → Settings in the left sidebar. Under Valid OAuth Redirect URIs, add:

text
https://sso.oathwall.com/auth/callback

Click Save Changes.

5

Enable the required permissions

Go to App Review → Permissions and Features. Make sure email and public_profile are enabled — these are available by default and don't require review.

6

Copy your credentials

Navigate to Settings → Basic. At the top you'll see your App ID. Click Show next to App Secret, confirm your password, and copy both values.

Your app will be in Development mode by default, which means only users listed as testers or developers can log in. To allow all users, switch the toggle at the top to Live. Meta will ask you to complete a few steps (privacy policy URL, app icon) before going live.

Apple

Sign in with Apple is required for any iOS app that offers third-party login. Apple's setup is more involved than other providers — you'll need a Services ID (acts as the Client ID), a private key (.p8 file), your Team ID, and the Key ID. Oathwall generates the JWT client secret automatically from these.

An Apple Developer Program membership ($99/year) is required to use Sign in with Apple. Individual or Organization accounts both work.

Required fields

FieldDescriptionExample
Client IDYour Services ID identifier (not the Bundle ID).com.yourstudio.yourgame.auth
Team IDFound top-right in the Apple Developer portal.ABC123DEF4
Key IDThe identifier of the Sign in with Apple key.XYZKEY1234
Private KeyContents of the .p8 file you download from Apple.-----BEGIN PRIVATE KEY----- ...

Step-by-step

1

Open Apple Developer portal

Go to developer.apple.com/account and sign in. Note your Team ID in the top-right corner — you'll need it later.

2

Register an App ID

Go to Certificates, Identifiers & Profiles → Identifiers. Click + and select App IDs.

  • Type: App
  • Description: your game name
  • Bundle ID: your reverse-domain identifier (e.g. com.yourstudio.yourgame)
  • Scroll down and check Sign In with Apple under Capabilities.
  • Click Continue → Register.
If you already have an App ID for your game, just edit it and enable the Sign In with Apple capability.
3

Create a Services ID

Back on Identifiers, click + and this time select Services IDs.

  • Description: e.g. My Game Auth Service
  • Identifier: a reverse-domain string that is different from your App ID — this becomes your Client ID in Oathwall. Example: com.yourstudio.yourgame.auth
  • Click Continue → Register.
4

Configure the Services ID

Click on the Services ID you just created. Check Sign In with Apple and click Configure.

  • Primary App ID: select the App ID you created in step 2.
  • Website URLs → Return URLs: add the Oathwall callback:
text
https://sso.oathwall.com/auth/callback
  • Click Next → Done → Continue → Save.
5

Create a Sign in with Apple key

Go to Keys in the sidebar, click +.

  • Give the key a name (e.g. Oathwall Key).
  • Check Sign In with Apple.
  • Click Configure and select your Primary App ID.
  • Click Save → Continue → Register.
6

Download the private key

After registering, you'll see a Download button. Download the .p8 file now — Apple will not let you download it again after you leave this page.

Note the Key ID shown on this page (also visible later in the Keys list).

Store the .p8 file securely. It cannot be re-downloaded. If lost, you'll need to create a new key and revoke the old one.
7

Gather all four values

You now have everything you need:

  • Client ID — the Services ID identifier
  • Team ID — top-right of the Developer portal
  • Key ID — shown on the Keys page
  • Private Key — the contents of the .p8 file (open it in a text editor and copy everything including the headers)

Steam

Steam uses OpenID 2.0 instead of OAuth 2.0 — there is no client secret or authorization code exchange. Authentication is verified server-side using a Steam Web API Key. This makes Steam the simplest provider to set up.

Required fields

FieldDescriptionExample
API KeyYour Steam Web API Key, used to verify logins server-side.A1B2C3D4E5F6...
Because Steam uses OpenID 2.0, there's no Client ID or Client Secret in the traditional sense. The API Key goes into the Client Secret field in Oathwall.

Step-by-step

1

Make sure you have a Steam game

You need a game registered on Steamworks. Players authenticate via their Steam account, so they need to own or have access to your game (you can set it to free-to-play or use playtest builds during development).

2

Register for a Steam Web API Key

Go to steamcommunity.com/dev/apikey.

  • Sign in with the Steam account that owns your game.
  • Enter a domain name for your application (e.g. oathwall.com or your game's domain).
  • Agree to the Steam Web API Terms of Use.
  • Click Register.
3

Copy your API Key

Your Steam Web API Key will be displayed on the same page. Copy it — this is what you'll paste into Oathwall as the Client Secret.

The Steam API Key is tied to the Steam account that registered it. If that account's privileges change or the key is revoked, authentication will stop working. Use a dedicated developer account rather than a personal one.
4

Note your App ID (optional)

Your Steamworks App ID is available in the Steamworks partner portal. You don't need it for Oathwall configuration, but it's useful to have handy when debugging player login issues.


Discord

Discord uses standard OAuth 2.0. You'll create an application in the Discord Developer Portal and get a Client ID and a Client Secret.

Required fields

FieldDescriptionExample
Client IDYour Discord application ID.1234567890123456789
Client SecretThe secret associated with your application.aBcDeFgHiJkLmNoPqRsTuV

Step-by-step

1

Open the Discord Developer Portal

Go to discord.com/developers/applications and log in with your Discord account.

2

Create a new application

Click New Application, give it a name (e.g. My Game Auth), and click Create. The name is shown to players on the OAuth consent screen.

3

Add the redirect URI

In the left sidebar, go to OAuth2. Under Redirects, click Add Redirect and enter:

text
https://sso.oathwall.com/auth/callback

Click Save Changes.

4

Copy your credentials

Still on the OAuth2 page, you'll see your Client ID near the top. Click Reset Secret to generate and reveal your Client Secret. Copy both values.

The Client Secret is only shown once after resetting. Copy it before leaving the page.

GitHub

GitHub uses OAuth Apps for third-party login. You'll register an OAuth App under your GitHub account (or organization) and get a Client ID and a Client Secret.

Required fields

FieldDescriptionExample
Client IDYour GitHub OAuth App client identifier.Iv1.a1b2c3d4e5f6g7h8
Client SecretThe secret paired with your Client ID.abc123def456...

Step-by-step

1

Open GitHub Developer Settings

Go to github.com/settings/developers and select OAuth Apps in the left sidebar.

2

Register a new OAuth App

Click New OAuth App and fill in the details:

  • Application name: your game's name (shown to players)
  • Homepage URL: your game's website
  • Authorization callback URL:
text
https://sso.oathwall.com/auth/callback

Click Register application.

3

Generate and copy your Client Secret

On the app page you'll see your Client ID. Click Generate a new client secret. Copy the secret immediately — it won't be shown again.

GitHub only shows the Client Secret once, right after you generate it. If you lose it, you'll need to generate a new one (which invalidates the old one).

Epic Games

Epic Games uses OAuth 2.0 with PKCE — Oathwall handles the PKCE flow automatically. You only need to provide a Client ID and Client Secret from the Epic Developer Portal.

Required fields

FieldDescriptionExample
Client IDYour Epic OAuth client identifier.xyza7891AbCdEfGhIjKlMnOpQrStUvWx
Client SecretThe secret paired with your Client ID.AbCdEfGhIjKlMnOpQrStUvWxYz123456

Step-by-step

1

Open the Epic Developer Portal

Go to dev.epicgames.com/portal and sign in. If you don't have an organization yet, create one first.

2

Create or open a product

Select an existing product (your game) or create a new one. Inside the product, navigate to Epic Account Services.

3

Create an OAuth client

Under Clients, click Add new client.

  • Give it a descriptive name (e.g. Oathwall).
  • Set the client policy to Confidential (server-side secret).
4

Add the redirect URI

In the client settings, add the Oathwall callback URL under Redirect URIs:

text
https://sso.oathwall.com/auth/callback
5

Copy your credentials

Save the client. Your Client ID and Client Secret are shown in the client detail page. Copy both to the Oathwall dashboard.

Oathwall uses PKCE automatically for Epic Games — you don't need to configure anything extra on your end.

Twitch

Twitch uses standard OAuth 2.0. You'll register an application in the Twitch Developer Console and get a Client ID and a Client Secret.

Required fields

FieldDescriptionExample
Client IDYour Twitch application client ID.abc123def456ghi789jkl012
Client SecretThe secret paired with your Client ID.xyz987uvw654tsr321...

Step-by-step

1

Open the Twitch Developer Console

Go to dev.twitch.tv/console and log in with your Twitch account.

2

Register a new application

Click Register Your Application and fill in the form:

  • Name: your app name (shown to users during login)
  • OAuth Redirect URLs: add the Oathwall callback:
text
https://sso.oathwall.com/auth/callback
  • Category: choose Game Integration or Other.
  • Click Create.
3

Copy your credentials

Click Manage on your new application. You'll see the Client ID directly. Click New Secret to generate the Client Secret, then copy both values.

Two-factor authentication (2FA) must be enabled on your Twitch account to register applications and generate secrets.

Twitter / X

Twitter/X uses OAuth 2.0 with PKCE — Oathwall handles the PKCE flow for you. You'll need a Twitter Developer account to get a Client ID and Client Secret.

A free Twitter Developer account is sufficient. You don't need elevated access for basic OAuth login.

Required fields

FieldDescriptionExample
Client IDYour Twitter OAuth 2.0 client ID.AbCdEfGhIjKlMnOpQrStUvWx
Client SecretThe secret paired with your Client ID.xyz987654321uvw...

Step-by-step

1

Open the Twitter Developer Portal

Go to developer.twitter.com/en/portal/dashboard and sign in. Create a developer account if you don't have one.

2

Create a project and app

Click Add App (or create a new project first, then add an app inside it). Give the app a name.

3

Enable OAuth 2.0

In your app settings, go to User authentication settings and click Set up.

  • Enable OAuth 2.0.
  • App type: Web App, Automated App or Bot.
  • Callback URI: add the Oathwall callback:
text
https://sso.oathwall.com/auth/callback
  • Website URL: your game or studio website.
  • Click Save.
4

Copy your credentials

After saving, Twitter will display your Client ID and Client Secret. Copy them now — the secret won't be shown again.

The Client Secret is shown only once. If you lose it, you'll need to regenerate it, which invalidates the previous one.

Microsoft

Microsoft Sign-In is powered by Azure Active Directory. You'll register an application in the Azure portal and get a Client ID (Application ID) and a Client Secret. Oathwall uses the common tenant endpoint, which supports both personal Microsoft accounts and work/school accounts.

Required fields

FieldDescriptionExample
Client IDThe Application (client) ID from Azure.a1b2c3d4-e5f6-7890-abcd-ef1234567890
Client SecretA client secret value you create in Azure.AbC~1dEfGhIjKlMnOpQrStUvWx2YzZ3

Step-by-step

1

Open Azure App Registrations

Go to the Azure App Registrations page and sign in with your Microsoft account.

2

Register a new application

Click New registration and fill in the details:

  • Name: your game or studio name
  • Supported account types: choose Accounts in any organizational directory and personal Microsoft accounts to support all players.
  • Redirect URI: select Web and enter:
text
https://sso.oathwall.com/auth/callback

Click Register.

3

Note your Client ID

On the app overview page, copy the Application (client) ID — this is your Client ID in Oathwall.

4

Create a client secret

In the left sidebar, go to Certificates & secrets. Under Client secrets, click New client secret.

  • Add a description (e.g. Oathwall) and choose an expiry period.
  • Click Add.
  • Copy the Value immediately — it's hidden after you leave the page.
Azure hides the secret value once you navigate away. Copy it before leaving. When a secret expires, you'll need to create a new one and update it in the Oathwall dashboard.

Adding a Provider

Once you have your credentials, adding them to your Oathwall app takes under a minute. Each app manages its own set of providers independently.

1

Open your app in the dashboard

Sign in to the Oathwall dashboard and navigate to Apps in the sidebar. Click on the app you want to configure.

2

Go to the Providers tab

Inside your app's detail page, click the Providers tab. You'll see all supported providers listed. Unconfigured providers appear greyed out.

3

Click Configure on a provider

Find the provider you want to enable and click Configure. A configuration panel will appear with the fields specific to that provider.

4

Fill in your credentials

Paste the values you collected from the provider's developer console:

Google
  • Client ID
  • Client Secret
Facebook
  • App ID → Client ID
  • App Secret → Client Secret
Apple
  • Services ID → Client ID
  • Team ID
  • Key ID
  • Private Key (.p8 contents)
Steam
  • Web API Key → Client Secret
Discord
  • Client ID
  • Client Secret
GitHub
  • Client ID
  • Client Secret
Epic Games
  • Client ID
  • Client Secret
Twitch
  • Client ID
  • Client Secret
Twitter / X
  • Client ID
  • Client Secret
Microsoft
  • Application ID → Client ID
  • Secret Value → Client Secret
5

Save and enable

Click Save. The provider will appear as Enabled in the list. You can disable it at any time without deleting the credentials.

Changes take effect immediately — no deployment or restart required. Your Unity SDK will pick up the new provider on the next GET /app-config/login-config/:appKey call.

Redirect URIs

Every OAuth provider requires you to whitelist the URL it will redirect to after authentication. All Oathwall callbacks go through the same endpoint.

OAuth callback URL
text
https://sso.oathwall.com/auth/callback

Provider-specific notes

Google

Add as an Authorized redirect URI in your OAuth client settings. Uses GET.

Facebook

Add under Facebook Login → Settings → Valid OAuth Redirect URIs. Uses GET.

Apple

Add as a Return URL in your Services ID configuration. Apple uses POST (form_post response mode).

Steam

No redirect URI configuration needed. Steam OpenID uses the openid.return_to parameter dynamically.

Discord

Add under OAuth2 → Redirects in your application settings. Uses GET.

GitHub

Set as the Authorization callback URL when registering your OAuth App. Uses GET.

Epic Games

Add under Redirect URIs in your OAuth client settings. Uses GET.

Twitch

Add under OAuth Redirect URLs when registering your application. Uses GET.

Twitter / X

Add as a Callback URI in your app's User authentication settings. Uses GET.

Microsoft

Add as a Web redirect URI in Authentication settings of your Azure app registration. Uses GET.

After the OAuth flow completes, Oathwall redirects the player to sso.oathwall.com/public/auth/redirect.html with a short-lived ticket. Your game then calls POST /auth/consume with the ticket to receive the actual access and refresh tokens. Players never see the intermediate redirect.