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 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
| Field | Description | Example |
|---|---|---|
Client ID | Your OAuth 2.0 client identifier. | 123456789-abc.apps.googleusercontent.com |
Client Secret | The secret paired with your Client ID. | GOCSPX-xxxxxxxxxxxx |
Step-by-step
Open Google Cloud Console
Go to console.cloud.google.com and sign in with your Google account.
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).
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, andprofile. - You don't need to add test users unless the app is in testing mode.
- Save and continue through the remaining steps.
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)
Add the redirect URI
Under Authorized redirect URIs, click Add URI and enter the Oathwall callback URL:
https://sso.oathwall.com/auth/callbackCopy your credentials
Click Create. A dialog will show your Client ID and Client Secret. Copy both — you'll paste them into the Oathwall dashboard.
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
| Field | Description | Example |
|---|---|---|
App ID | Your Meta app identifier (public). | 1234567890123456 |
App Secret | The secret paired with your App ID. | abc123def456... |
Step-by-step
Open Meta for Developers
Go to developers.facebook.com and log in with a Facebook account that has developer access.
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.
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.
Set the redirect URI
Go to Facebook Login → Settings in the left sidebar. Under Valid OAuth Redirect URIs, add:
https://sso.oathwall.com/auth/callbackClick Save Changes.
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.
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.
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.
Required fields
| Field | Description | Example |
|---|---|---|
Client ID | Your Services ID identifier (not the Bundle ID). | com.yourstudio.yourgame.auth |
Team ID | Found top-right in the Apple Developer portal. | ABC123DEF4 |
Key ID | The identifier of the Sign in with Apple key. | XYZKEY1234 |
Private Key | Contents of the .p8 file you download from Apple. | -----BEGIN PRIVATE KEY-----
... |
Step-by-step
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.
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.
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.
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:
https://sso.oathwall.com/auth/callback- Click Next → Done → Continue → Save.
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.
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).
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
| Field | Description | Example |
|---|---|---|
API Key | Your Steam Web API Key, used to verify logins server-side. | A1B2C3D4E5F6... |
Step-by-step
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).
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.comor your game's domain). - Agree to the Steam Web API Terms of Use.
- Click Register.
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.
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
| Field | Description | Example |
|---|---|---|
Client ID | Your Discord application ID. | 1234567890123456789 |
Client Secret | The secret associated with your application. | aBcDeFgHiJkLmNoPqRsTuV |
Step-by-step
Open the Discord Developer Portal
Go to discord.com/developers/applications and log in with your Discord account.
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.
Add the redirect URI
In the left sidebar, go to OAuth2. Under Redirects, click Add Redirect and enter:
https://sso.oathwall.com/auth/callbackClick Save Changes.
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.
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
| Field | Description | Example |
|---|---|---|
Client ID | Your GitHub OAuth App client identifier. | Iv1.a1b2c3d4e5f6g7h8 |
Client Secret | The secret paired with your Client ID. | abc123def456... |
Step-by-step
Open GitHub Developer Settings
Go to github.com/settings/developers and select OAuth Apps in the left sidebar.
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:
https://sso.oathwall.com/auth/callbackClick Register application.
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.
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
| Field | Description | Example |
|---|---|---|
Client ID | Your Epic OAuth client identifier. | xyza7891AbCdEfGhIjKlMnOpQrStUvWx |
Client Secret | The secret paired with your Client ID. | AbCdEfGhIjKlMnOpQrStUvWxYz123456 |
Step-by-step
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.
Create or open a product
Select an existing product (your game) or create a new one. Inside the product, navigate to Epic Account Services.
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).
Add the redirect URI
In the client settings, add the Oathwall callback URL under Redirect URIs:
https://sso.oathwall.com/auth/callbackCopy your credentials
Save the client. Your Client ID and Client Secret are shown in the client detail page. Copy both to the Oathwall dashboard.
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
| Field | Description | Example |
|---|---|---|
Client ID | Your Twitch application client ID. | abc123def456ghi789jkl012 |
Client Secret | The secret paired with your Client ID. | xyz987uvw654tsr321... |
Step-by-step
Open the Twitch Developer Console
Go to dev.twitch.tv/console and log in with your Twitch account.
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:
https://sso.oathwall.com/auth/callback- Category: choose Game Integration or Other.
- Click Create.
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.
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.
Required fields
| Field | Description | Example |
|---|---|---|
Client ID | Your Twitter OAuth 2.0 client ID. | AbCdEfGhIjKlMnOpQrStUvWx |
Client Secret | The secret paired with your Client ID. | xyz987654321uvw... |
Step-by-step
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.
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.
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:
https://sso.oathwall.com/auth/callback- Website URL: your game or studio website.
- Click Save.
Copy your credentials
After saving, Twitter will display your Client ID and Client Secret. Copy them now — the secret won't be shown again.
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
| Field | Description | Example |
|---|---|---|
Client ID | The Application (client) ID from Azure. | a1b2c3d4-e5f6-7890-abcd-ef1234567890 |
Client Secret | A client secret value you create in Azure. | AbC~1dEfGhIjKlMnOpQrStUvWx2YzZ3 |
Step-by-step
Open Azure App Registrations
Go to the Azure App Registrations page and sign in with your Microsoft account.
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:
https://sso.oathwall.com/auth/callbackClick Register.
Note your Client ID
On the app overview page, copy the Application (client) ID — this is your Client ID in Oathwall.
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.
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.
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.
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.
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.
Fill in your credentials
Paste the values you collected from the provider's developer console:
- Client ID
- Client Secret
- App ID → Client ID
- App Secret → Client Secret
- Services ID → Client ID
- Team ID
- Key ID
- Private Key (.p8 contents)
- Web API Key → Client Secret
- Client ID
- Client Secret
- Client ID
- Client Secret
- Client ID
- Client Secret
- Client ID
- Client Secret
- Client ID
- Client Secret
- Application ID → Client ID
- Secret Value → Client Secret
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.
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.
https://sso.oathwall.com/auth/callbackProvider-specific notes
Add as an Authorized redirect URI in your OAuth client settings. Uses GET.
Add under Facebook Login → Settings → Valid OAuth Redirect URIs. Uses GET.
Add as a Return URL in your Services ID configuration. Apple uses POST (form_post response mode).
No redirect URI configuration needed. Steam OpenID uses the openid.return_to parameter dynamically.
Add under OAuth2 → Redirects in your application settings. Uses GET.
Set as the Authorization callback URL when registering your OAuth App. Uses GET.
Add under Redirect URIs in your OAuth client settings. Uses GET.
Add under OAuth Redirect URLs when registering your application. Uses GET.
Add as a Callback URI in your app's User authentication settings. Uses GET.
Add as a Web redirect URI in Authentication settings of your Azure app registration. Uses GET.
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.