How It Works
When a player connects to a lobby or enters matchmaking, their game client sends an identity token in thex-player-token header. PlayFlow validates that token against your configured provider, creates or updates a player record, and grants access to the session.
Configure your auth provider
Choose a provider in Project Settings > Player Authentication on the dashboard, or via the API.
Get a token from your auth provider
Your game client authenticates with your chosen provider and receives a token — a JWT, PlayFab entity token, or Steam session ticket.
Send the token with requests
Include the token in the
x-player-token header when your client connects to lobbies or matchmaking.Auth Providers
PlayFlow supports four authentication providers. Choose the one that matches your game’s identity system.- None (Default)
- Custom JWT
- PlayFab
- Steam
No server-side verification. The value of the
x-player-token header is used directly as the player identifier. If no header is provided, the request passes through without authentication.This is the default for all projects. It is suitable for development and testing but should not be used in production.Configuration
No configuration is needed. All new projects start with this provider.Behavior
- The
x-player-tokenheader is optional. - If a token is provided, its raw value becomes the player’s
provider_uid. - If no token is provided, the request proceeds without player identity.
Dashboard Configuration
You can configure player authentication from the PlayFlow dashboard.- Navigate to your project and open the Settings page.
- Find the Player Authentication section.
- Select your provider from the dropdown.
- Fill in the required fields for your chosen provider.
- Click Save.
API Configuration
You can also configure player authentication programmatically via the engine API.auth_config alongside other project settings.
Sending the Player Token
Once your provider is configured, your game client must include the player’s identity token in thex-player-token header on every lobby and matchmaking request.
- Unity
- REST API
The PlayFlow SDK handles the token header automatically when you set the player token during initialization:
Players Table
Authenticated players are automatically tracked in a per-project players table. Each time a player authenticates, PlayFlow upserts a record with the following fields:| Field | Description |
|---|---|
id | Unique player ID (UUID), auto-generated by PlayFlow. |
provider | The auth provider that verified this player (none, custom_jwt, playfab, steam). |
provider_uid | The player’s identifier from the auth provider (e.g., JWT sub, PlayFab eid, Steam steamid). |
display_name | Display name extracted from the token, if available. |
metadata | Provider-specific metadata (e.g., owner_steamid for Steam, title_id for PlayFab). |
last_seen_at | Timestamp of the player’s most recent authentication. |
project_id and provider_uid. If the same player authenticates again, their existing record is updated rather than duplicated.
You can view your authenticated players in the Players tab on the project dashboard.
Choosing a Provider
Development / Testing
Use None to get started quickly without any auth infrastructure. Switch to a verified provider before launching.
Existing Auth System
Use Custom JWT if you already have an auth provider (Auth0, Firebase, Supabase, Clerk, or any OIDC-compliant service).
PlayFab Games
Use PlayFab if your game uses Microsoft PlayFab for player management and you want native integration.
Steam Games
Use Steam if your game is distributed on Steam and you want to verify player identity through Steam session tickets.