<a id="steam-openid"></a>

# Steam OpenID

<a id="backend-class"></a>

## Backend class

For Django, add this class path to `AUTHENTICATION_BACKENDS`. For other
integrations, use the same class path in the framework-specific backend
setting.

| Backend name   | Class path                               |
|----------------|------------------------------------------|
| `steam`        | `social_core.backends.steam.SteamOpenId` |

Steam OpenID works quite straightforward, but to retrieve some user data (known
as `player` on Steam API) a Steam API Key is needed.

The backend validates the asserted OpenID identity URL and extracts the Steam
ID from it. The generic `ID_KEY` setting does not apply to this
protocol-derived identifier.

Configurable settings:

1. Supply a Steam API Key from [Steam Dev](http://steamcommunity.com/dev/apikey)
2. Fill key in your project settings:
   ```default
   SOCIAL_AUTH_STEAM_API_KEY = '...'
   ```
3. To save `player` data provided by Steam into `extra_data`:
   ```default
   SOCIAL_AUTH_STEAM_EXTRA_DATA = ['player']
   ```
4. Enable the backend:
   ```default
   SOCIAL_AUTH_AUTHENTICATION_BACKENDS = (
       ...
       'social_core.backends.steam.SteamOpenId',
       ...
   )
   ```
