{"id":15020966,"url":"https://github.com/teddio/pysteamsignin","last_synced_at":"2026-03-16T20:33:01.143Z","repository":{"id":42465639,"uuid":"42130244","full_name":"TeddiO/pySteamSignIn","owner":"TeddiO","description":"A small Python 3 class designed to get Steam OpenID 2 sign-in up and running as quick as possible.","archived":false,"fork":false,"pushed_at":"2023-02-25T13:26:46.000Z","size":36,"stargazers_count":51,"open_issues_count":0,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-01T00:25:59.129Z","etag":null,"topics":["authentication","bottlepy","fastapi","flask","openid","openid2","python","steam","steam-openid"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TeddiO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-08T18:09:30.000Z","updated_at":"2025-01-01T08:58:11.000Z","dependencies_parsed_at":"2023-02-17T07:25:40.157Z","dependency_job_id":null,"html_url":"https://github.com/TeddiO/pySteamSignIn","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeddiO%2FpySteamSignIn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeddiO%2FpySteamSignIn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeddiO%2FpySteamSignIn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeddiO%2FpySteamSignIn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TeddiO","download_url":"https://codeload.github.com/TeddiO/pySteamSignIn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238397229,"owners_count":19465137,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","bottlepy","fastapi","flask","openid","openid2","python","steam","steam-openid"],"created_at":"2024-09-24T19:55:57.305Z","updated_at":"2025-12-29T15:30:56.844Z","avatar_url":"https://github.com/TeddiO.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pySteamSignIn\nA lightweight Python 3 helper class for getting OpenID 2.0 Steam sign-in up and running quickly.\n\nThere aren’t really any Steam-specific OpenID 2.0 sign-in libraries that provide clear documentation or insight into how the flow actually works. Most guidance instead points people at generic OpenID libraries, which are often overkill for Steam and fairly bloated in practice.\n\nAs a result of this pySteamSignIn is designed to let you plug in Steam Auth as quick as possible and let you start returning results immediately.\n\n## Installation\npySteamSignIn is now available on pip!\n\n`pip install steamsignin`\n\n## Lets quickly get authentication rolling\n\nThe power behind this is it provides the entire auth process over two (or three, if you're using bottlepy / Flask / FastAPI) functions.\nThe first function is ConstructURL, which takes a string and returns a string\n\nThe string to pass is whatever page the user is going to be sent back to as a result of logging in with Steam.\n\n```Python\nfrom pysteamsignin.steamsignin import SteamSignIn\n\nsteamLogin = SteamSignIn()\nencodedData = steamLogin.ConstructURL('https://0.0.0.0:8080/processlogin'))\nForwardClientToSteamPage(encodedData) #Not a real function, but the next action you'd take\n...\n```\n\nAt this point you forward the client on with a post request to https://steamcommunity.com/openid/login and you'll get thrown a bunch of stuff back. \n\nThe important thing here is that you get thet GET returned data put into a  dictionary to then pass on to ValidateResults\n\n\n```python\n# Some function where the data has been passed in a dictionary no less\nsteamLogin = SteamSignIn()\nreturnedSteamID = steamLogin.ValidateResults(dictionaryGoesHere)\n# Perform checks to see if you actually have something that isn't false\n...\n```\nAnd that's the general gist of it! At this point the user has been validated by Steam's own servers so the Steam64ID returned is one that can be trusted.\n### If you use Bottlepy, Flask or FastAPI...\n\nAn additional helper function has been provided under the guise of RedirectUser.\nThis will just relay the user on your behalf to the Steam site, as such \n\n```Python\nsteamLogin = SteamSignIn()\nsteamLogin.RedirectUser(steamLogin.ConstructURL('https://0.0.0.0:8080/processlogin'))\n# In the case of Flask / FastAPI, return the above RedirectUser call instead.\n...\n```\n\n## Dependencies\nThe core of pySteamSignIn uses only the Python standard library and does not depend on external HTTP clients such as requests.\nOptional helper functions are provided for common web frameworks (Bottle, Flask, FastAPI) and are only enabled if those frameworks are already installed.\n\n## Finally\n\nHopefully this helps someone get OpenID 2.0 Steam sign-in and Python working together a bit more smoothly. There's a few solutions for Flask and Django (which are basically glorified wrappers for python-openid) but both of them can still result in a fair few steps.\n\nThis is based on OpenID 2.0 and **not** OpenID Connect / OAuth 2.\n\nIf you require a Go version of this library, this is available [here](https://github.com/TeddiO/GoSteamAuth).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteddio%2Fpysteamsignin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteddio%2Fpysteamsignin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteddio%2Fpysteamsignin/lists"}