2
Steam OpenId backend, docs at:
3
https://python-social-auth.readthedocs.io/en/latest/backends/steam.html
5
from .open_id import OpenIdAuth
6
from ..exceptions import AuthFailed
9
USER_INFO = 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?'
12
class SteamOpenId(OpenIdAuth):
14
URL = 'https://steamcommunity.com/openid'
16
def get_user_id(self, details, response):
17
"""Return user unique id provided by service"""
18
return self._user_id(response)
20
def get_user_details(self, response):
21
player = self.get_json(USER_INFO, params={
22
'key': self.setting('API_KEY'),
23
'steamids': self._user_id(response)
25
if len(player['response']['players']) > 0:
26
player = player['response']['players'][0]
27
details = {'username': player.get('personaname'),
38
# Steam seems to support stateless mode only, ignore store
39
if not hasattr(self, '_consumer'):
40
self._consumer = self.create_consumer()
43
def _user_id(self, response):
44
user_id = response.identity_url.rsplit('/', 1)[-1]
45
if not user_id.isdigit():
46
raise AuthFailed(self, 'Missing Steam Id')