Browse Source

re-record VCRs; fix SteamID.from_url for groups

Closes #188
pull/254/head
Rossen Georgiev 5 years ago
parent
commit
7df7bfcfc9
  1. 3
      Vagrantfile
  2. 4
      requirements.txt
  3. 2
      setup.py
  4. 2
      steam/steamid.py
  5. 18
      tests/generete_webauth_vcr.py
  6. 18
      tests/test_steamid.py
  7. 13
      tests/test_webapi.py
  8. 3644
      vcr/steamid_community_urls.yaml
  9. 488
      vcr/webapi.yaml
  10. 120
      vcr/webauth_user_pass_only_fail.yaml
  11. 126
      vcr/webauth_user_pass_only_success.yaml

3
Vagrantfile

@ -16,7 +16,8 @@ Vagrant.configure("2") do |config|
box.vm.provision "shell", inline: <<-SHELL
set -x
apt-get update
export DEBIAN_FRONTEND='noninteractive'
apt-get -y update
apt-get -y install python-pip python-virtualenv
SHELL

4
requirements.txt

@ -2,7 +2,7 @@ six>=1.10.0
pycryptodomex>=3.7.0
requests>=2.9.1,<2.22.0
vdf>=2.0
gevent>=1.2.0
gevent>=1.3.0
protobuf>=3.0.0
gevent-eventemitter>=2.1
enum34==1.1.2; python_version < '3.4'
@ -11,7 +11,7 @@ pytest==3.2.1
pytest-cov==2.5.1
mock==1.3.0
PyYAML==5.1
vcrpy==1.7.4
vcrpy==2.0.1
sphinx==1.8.5
sphinx_rtd_theme
cachetools>=3.0.0

2
setup.py

@ -19,7 +19,7 @@ install_requires = [
'pycryptodomex>=3.7.0',
'requests>=2.9.1,<2.22.0',
'vdf>=2.0',
'gevent>=1.2.0',
'gevent>=1.3.0',
'protobuf>=3.0.0',
'gevent-eventemitter>=2.1',
'cachetools>=3.0.0',

2
steam/steamid.py

@ -488,7 +488,7 @@ def steam64_from_url(url, http_timeout=30):
# group profiles
else:
text = web.get(match.group('clean_url'), timeout=http_timeout).text
data_match = re.search("'steam://friends/joinchat/(?P<steamid>\d+)'", text)
data_match = re.search("OpenGroupChat\( *'(?P<steamid>\d+)'", text)
if data_match:
return int(data_match.group('steamid'))

18
tests/generete_webauth_vcr.py

@ -1,4 +1,5 @@
from __future__ import print_function
import re
import os
import sys
@ -15,29 +16,42 @@ import requests
from steam import webauth as wa
try:
_input = raw_input
except:
_input = input
# personal info scrubbers
# -----------------------
# The recorded vcr is anonymized and should not contain
# any personal info. MAKE SURE TO CHECK THE VCR BEFORE COMMIT TO REPO
def request_scrubber(r):
r['headers'].pop('set-cokie', None)
r.headers.pop('Cookie', None)
r.headers['Accept-Encoding'] = 'identity'
r.body = ''
return r
def response_scrubber(r):
r['headers'].pop('date', None)
r['headers'].pop('expires', None)
if 'set-cookie' in r['headers'] and 'steamLogin' in ''.join(r['headers']['set-cookie']):
r['headers']['set-cookie'] = [
'steamLogin=0%7C%7C{}; path=/; httponly'.format('A'*16),
'steamLoginSecure=0%7C%7C{}; path=/; httponly; secure'.format('B'*16),
'steamMachineAuth0={}; path=/; httponly'.format('C'*16),
]
else:
r['headers'].pop('set-cookie', None)
if r.get('body', ''):
data = json.loads(r['body']['string'])
if 'token_gid' in data:
data['token_gid'] = 0
if 'timestamp' in data:
data['timestamp'] = 12345678
if 'transfer_parameters' in data:
data['transfer_parameters']['steamid'] = '0'
data['transfer_parameters']['token'] = 'A'*16
@ -66,7 +80,7 @@ anon_vcr = vcr.VCR(
def user_pass_only():
print("Please enter a user that can login with just password.")
u = raw_input("Username: ")
u = _input("Username: ")
p = getpass("Password (no echo): ")
user_pass_only_success(u, p)

18
tests/test_steamid.py

@ -315,8 +315,24 @@ class steamid_functions(unittest.TestCase):
mm.get.side_effect = requests.exceptions.ReadTimeout('test')
self.assertIsNone(steamid.steam64_from_url("https://steamcommunity.com/id/timeout_me"))
@vcr.use_cassette('vcr/steamid_community_urls.yaml', mode='once', serializer='yaml', filter_query_parameters=['nocache'])
def test_steam64_from_url(self):
def scrub_req(r):
r.headers.pop('Cookie', None)
r.headers.pop('date', None)
return r
def scrub_resp(r):
r['headers'].pop('set-cookie', None)
r['headers'].pop('date', None)
return r
with vcr.use_cassette('vcr/steamid_community_urls.yaml',
mode='once',
serializer='yaml',
filter_query_parameters=['nocache'],
decode_compressed_response=False,
before_record_request=scrub_req,
before_record_response=scrub_resp,
):
# invalid urls return None
self.assertIsNone(steamid.steam64_from_url("asdasd"))
self.assertIsNone(steamid.steam64_from_url("https://steamcommunity.com/gid/0"))

13
tests/test_webapi.py

@ -6,6 +6,17 @@ from steam import webapi
from steam.webapi import WebAPI
from steam.enums import EType, EUniverse
# setup VCR
def scrub_req(r):
r.headers.pop('Cookie', None)
r.headers.pop('date', None)
return r
def scrub_resp(r):
r['headers'].pop('set-cookie', None)
r['headers'].pop('date', None)
r['headers'].pop('expires', None)
return r
test_api_key = 'test_api_key'
test_vcr = vcr.VCR(
@ -14,6 +25,8 @@ test_vcr = vcr.VCR(
filter_query_parameters=['key'],
filter_post_data_parameters=['key'],
cassette_library_dir='vcr',
before_record_request=scrub_req,
before_record_response=scrub_resp,
)
class TCwebapi(unittest.TestCase):

3644
vcr/steamid_community_urls.yaml

File diff suppressed because it is too large

488
vcr/webapi.yaml

@ -2,235 +2,317 @@ interactions:
- request:
body: null
headers:
Accept: ['*/*']
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
User-Agent: [python-steam/0.7.4 python-requests/2.9.1]
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
User-Agent:
- python-steam/1.0.0-alpha6 python-requests/2.21.0
method: GET
uri: https://api.steampowered.com/ISteamWebAPIUtil/GetSupportedAPIList/v1/?format=json
response:
body:
string: !!binary |
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
headers:
connection: [keep-alive]
content-encoding: [gzip]
content-length: ['7182']
content-type: [application/json; charset=UTF-8]
date: ['Fri, 13 May 2016 12:46:46 GMT']
expires: ['Fri, 13 May 2016 12:46:46 GMT']
vary: [Accept-Encoding]
status: {code: 200, message: OK}
connection:
- keep-alive
content-encoding:
- gzip
content-length:
- '9675'
content-type:
- application/json; charset=UTF-8
vary:
- Accept-Encoding
status:
code: 200
message: OK
- request:
body: publishedfileids%5B2%5D=1&publishedfileids%5B3%5D=1&itemcount=5&format=json&publishedfileids%5B1%5D=1&publishedfileids%5B4%5D=1&publishedfileids%5B0%5D=1
body: null
headers:
Accept: ['*/*']
Accept-Encoding: [q=0]
Connection: [keep-alive]
Content-Length: ['190']
Content-Type: [application/x-www-form-urlencoded]
User-Agent: [python-steam/0.7.4 python-requests/2.9.1]
method: POST
uri: https://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1/
Accept:
- '*/*'
Accept-Encoding:
- identity
Connection:
- keep-alive
User-Agent:
- python-steam/1.0.0-alpha6 python-requests/2.21.0
method: GET
uri: https://api.steampowered.com/ISteamUser/ResolveVanityURL/v1/?format=json&url_type=2&vanityurl=valve
response:
body: {string: !!python/unicode "{\n\t\"response\": {\n\t\t\"result\": 1,\n\t\t\
\"resultcount\": 5,\n\t\t\"publishedfiledetails\": [\n\t\t\t{\n\t\t\t\t\"\
publishedfileid\": \"1\",\n\t\t\t\t\"result\": 9\n\t\t\t},\n\t\t\t{\n\t\t\t\
\t\"publishedfileid\": \"1\",\n\t\t\t\t\"result\": 9\n\t\t\t},\n\t\t\t{\n\t\
\t\t\t\"publishedfileid\": \"1\",\n\t\t\t\t\"result\": 9\n\t\t\t},\n\t\t\t\
{\n\t\t\t\t\"publishedfileid\": \"1\",\n\t\t\t\t\"result\": 9\n\t\t\t},\n\t\
\t\t{\n\t\t\t\t\"publishedfileid\": \"1\",\n\t\t\t\t\"result\": 9\n\t\t\t\
}\n\t\t]\n\t\t\n\t}\n}"}
body:
string: !!python/unicode '{"response":{"steamid":"103582791429521412","success":1}}'
headers:
connection: [keep-alive]
content-length: ['365']
content-type: [application/json; charset=UTF-8]
date: ['Fri, 13 May 2016 12:46:47 GMT']
expires: ['Fri, 13 May 2016 13:16:20 GMT']
status: {code: 200, message: OK}
connection:
- keep-alive
content-length:
- '57'
content-type:
- application/json; charset=UTF-8
vary:
- Accept-Encoding
status:
code: 200
message: OK
- request:
body: null
body: !!python/unicode 'publishedfileids%5B2%5D=1&publishedfileids%5B3%5D=1&publishedfileids%5B0%5D=1&format=json&publishedfileids%5B4%5D=1&itemcount=5&publishedfileids%5B1%5D=1'
headers:
Accept: ['*/*']
Accept-Encoding: [q=0]
Connection: [keep-alive]
User-Agent: [python-steam/0.7.4 python-requests/2.9.1]
method: GET
uri: https://api.steampowered.com/ISteamUser/ResolveVanityURL/v1/?format=json&url_type=2&vanityurl=valve
Accept:
- '*/*'
Accept-Encoding:
- identity
Connection:
- keep-alive
Content-Length:
- '190'
Content-Type:
- application/x-www-form-urlencoded
User-Agent:
- python-steam/1.0.0-alpha6 python-requests/2.21.0
method: POST
uri: https://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1/
response:
body: {string: !!python/unicode "{\n\t\"response\": {\n\t\t\"steamid\": \"103582791429521412\"\
,\n\t\t\"success\": 1\n\t}\n}"}
body:
string: !!python/unicode '{"response":{"result":1,"resultcount":5,"publishedfiledetails":[{"publishedfileid":"1","result":9},{"publishedfileid":"1","result":9},{"publishedfileid":"1","result":9},{"publishedfileid":"1","result":9},{"publishedfileid":"1","result":9}]}}'
headers:
connection: [keep-alive]
content-length: ['71']
content-type: [application/json; charset=UTF-8]
date: ['Fri, 13 May 2016 12:46:47 GMT']
expires: ['Fri, 13 May 2016 12:46:47 GMT']
vary: [Accept-Encoding]
status: {code: 200, message: OK}
connection:
- keep-alive
content-length:
- '241'
content-type:
- application/json; charset=UTF-8
status:
code: 200
message: OK
- request:
body: null
headers:
Accept: ['*/*']
Accept-Encoding: [q=0]
Connection: [keep-alive]
User-Agent: [python-steam/0.7.4 python-requests/2.9.1]
Accept:
- '*/*'
Accept-Encoding:
- identity
Connection:
- keep-alive
User-Agent:
- python-steam/1.0.0-alpha6 python-requests/2.21.0
method: GET
uri: https://api.steampowered.com/ISteamWebAPIUtil/GetServerInfo/v1/?format=json
response:
body: {string: !!python/unicode "{\n\t\"servertime\": 1463143608,\n\t\"servertimestring\"\
: \"Fri May 13 05:46:48 2016\"\n}"}
body:
string: !!python/unicode '{"servertime":1587241272,"servertimestring":"Sat Apr
18 13:21:12 2020"}'
headers:
connection: [keep-alive]
content-length: ['78']
content-type: [application/json; charset=UTF-8]
date: ['Fri, 13 May 2016 12:46:48 GMT']
expires: ['Fri, 13 May 2016 12:46:48 GMT']
vary: [Accept-Encoding]
status: {code: 200, message: OK}
connection:
- keep-alive
content-length:
- '71'
content-type:
- application/json; charset=UTF-8
vary:
- Accept-Encoding
status:
code: 200
message: OK
- request:
body: null
headers:
Accept: ['*/*']
Accept-Encoding: [q=0]
Connection: [keep-alive]
User-Agent: [python-steam/0.7.4 python-requests/2.9.1]
Accept:
- '*/*'
Accept-Encoding:
- identity
Connection:
- keep-alive
User-Agent:
- python-steam/1.0.0-alpha6 python-requests/2.21.0
method: GET
uri: https://api.steampowered.com/ISteamWebAPIUtil/GetServerInfo/v1/?format=vdf
response:
body: {string: !!python/unicode "\"response\"\n{\n\t\"servertime\"\t\"1463143609\"\
\n\t\"servertimestring\"\t\"Fri May 13 05:46:49 2016\"\n}"}
body:
string: !!python/unicode "\"response\"\n{\n\t\"servertime\"\t\"1587241273\"\n\
\t\"servertimestring\"\t\"Sat Apr 18 13:21:13 2020\"\n}"
headers:
connection: [keep-alive]
content-length: ['88']
content-type: [text/vdf; charset=UTF-8]
date: ['Fri, 13 May 2016 12:46:49 GMT']
expires: ['Fri, 13 May 2016 12:46:49 GMT']
vary: [Accept-Encoding]
status: {code: 200, message: OK}
connection:
- keep-alive
content-length:
- '88'
content-type:
- text/vdf; charset=UTF-8
vary:
- Accept-Encoding
status:
code: 200
message: OK
version: 1

120
vcr/webauth_user_pass_only_fail.yaml

@ -1,66 +1,82 @@
interactions:
- request:
body: ''
body: !!python/unicode ''
headers:
Accept: ['*/*']
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
Content-Length: ['46']
Content-Type: [application/x-www-form-urlencoded]
User-Agent: [python-steam/0.8.3 python-requests/2.9.1]
Accept:
- '*/*'
Accept-Encoding:
- identity
Connection:
- keep-alive
Content-Length:
- '46'
Content-Type:
- application/x-www-form-urlencoded
User-Agent:
- python-steam/1.0.0-alpha6 python-requests/2.21.0
method: POST
uri: https://steamcommunity.com/login/getrsakey/
response:
body: {string: !!python/unicode '{"timestamp": "259640400000", "token_gid": 0,
"publickey_mod": "CA419D47649D81ACB6A748C80BEF0F8CBB87B4B64ED810EE1A60A47A18A511EFEB52936FBC0986714BB0D725643FE255E39FC3426E9BA8B331C3598B96E9BC18E6E2B86AE1ED7E8E96E8FF1CB7705D3C138C56FF6F07B5F62F1F3199116CB4058E23CD62C79BC840C630BD0FECF59F3D368007A7F12E5A7306DB70E5EEF3430D11FD60745495CB4E0F4167637D1DED0A02DADC28C06E4B97456FCB316163D5C97BE2ECF3A0C1E6BC53C59BF703F1C7187B5D165497AB4337D46A2B15D1811F65F5C46E58D7A85685409C6C2CBB81B397CE341CD33468ED62289C356A82C270258E361C629396012FACD282BDBC7440D6AD7AEDF9C94AF1596FDEA572EA873273",
"publickey_exp": "010001", "success": true}'}
body:
string: !!python/unicode '{"timestamp": 12345678, "token_gid": 0, "publickey_mod":
"ddb3f29bd33f38db5947d85dc2e46bf033916d9caa95948a9af1146bf246915b93e66124e025f21588c05549614fe4c1ffa2ec92ea76bf1c580422bc1fc85700cce8dd14ec232e47a03581dc670ecb3a125bc597569384e3ec2707674458c666c563b7a0972deddd855b23884ca76032c2c5a99af6e8debe47aace8d0bdb8fc42bb9758ce8db0765649f78cd4fa4b3d123ed7cbce0c05b57dbb1a8cbb82923c7c9ca8fecab923db2f3a85a05d8c8bf5a1aeed479d3f533b009cce7d9f9ca196397206bdda46fb850a4c4ea7eb3383e419121fac575629e893959175aedc936cb71527958eb308bd555cf0386939b5a3c097fa6156aeef5eb805168b7bdb511fd",
"publickey_exp": "010001", "success": true}'
headers:
cache-control: [no-cache]
connection: [keep-alive]
content-length: ['622']
content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval''
https://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ *.google-analytics.com
https://www.google.com https://www.gstatic.com https://apis.google.com;
object-src ''none''; connect-src ''self'' http://steamcommunity.com https://steamcommunity.com
https://api.steampowered.com/; frame-src ''self'' http://store.steampowered.com/
https://store.steampowered.com/ http://www.youtube.com https://www.youtube.com
https://www.google.com https://sketchfab.com https://help.steampowered.com/;']
content-type: [application/json; charset=utf-8]
date: ['Sat, 04 Jun 2016 00:05:21 GMT']
expires: ['Mon, 26 Jul 1997 05:00:00 GMT']
server: [Apache]
x-frame-options: [DENY]
status: {code: 200, message: OK}
cache-control:
- no-cache
connection:
- keep-alive
content-length:
- '616'
content-type:
- application/json; charset=utf-8
server:
- nginx
vary:
- Accept-Encoding
x-frame-options:
- DENY
status:
code: 200
message: OK
- request:
body: ''
body: !!python/unicode ''
headers:
Accept: ['*/*']
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
Content-Length: ['586']
Content-Type: [application/x-www-form-urlencoded]
User-Agent: [python-steam/0.8.3 python-requests/2.9.1]
Accept:
- '*/*'
Accept-Encoding:
- identity
Connection:
- keep-alive
Content-Length:
- '570'
Content-Type:
- application/x-www-form-urlencoded
User-Agent:
- python-steam/1.0.0-alpha6 python-requests/2.21.0
method: POST
uri: https://steamcommunity.com/login/dologin/
response:
body: {string: !!python/unicode '{"captcha_gid": -1, "success": false, "requires_twofactor":
false, "captcha_needed": false, "clear_password_field": true, "message": "Incorrect
login."}'}
body:
string: !!python/unicode '{"captcha_gid": -1, "success": false, "requires_twofactor":
false, "captcha_needed": false, "clear_password_field": true, "message": "The
account name or password that you have entered is incorrect."}'
headers:
cache-control: [no-cache]
connection: [keep-alive]
content-length: ['152']
content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval''
https://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ *.google-analytics.com
https://www.google.com https://www.gstatic.com https://apis.google.com;
object-src ''none''; connect-src ''self'' http://steamcommunity.com https://steamcommunity.com
https://api.steampowered.com/; frame-src ''self'' http://store.steampowered.com/
https://store.steampowered.com/ http://www.youtube.com https://www.youtube.com
https://www.google.com https://sketchfab.com https://help.steampowered.com/;']
content-type: [application/json; charset=utf-8]
date: ['Sat, 04 Jun 2016 00:05:22 GMT']
expires: ['Mon, 26 Jul 1997 05:00:00 GMT']
server: [Apache]
x-frame-options: [DENY]
status: {code: 200, message: OK}
cache-control:
- no-cache
connection:
- keep-alive
content-length:
- '200'
content-type:
- application/json; charset=utf-8
server:
- nginx
vary:
- Accept-Encoding
x-frame-options:
- DENY
status:
code: 200
message: OK
version: 1

126
vcr/webauth_user_pass_only_success.yaml

@ -1,70 +1,88 @@
interactions:
- request:
body: ''
body: !!python/unicode ''
headers:
Accept: ['*/*']
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
Content-Length: ['46']
Content-Type: [application/x-www-form-urlencoded]
User-Agent: [python-steam/0.8.3 python-requests/2.9.1]
Accept:
- '*/*'
Accept-Encoding:
- identity
Connection:
- keep-alive
Content-Length:
- '46'
Content-Type:
- application/x-www-form-urlencoded
User-Agent:
- python-steam/1.0.0-alpha6 python-requests/2.21.0
method: POST
uri: https://steamcommunity.com/login/getrsakey/
response:
body: {string: !!python/unicode '{"timestamp": "263253650000", "token_gid": 0,
"publickey_mod": "E0E0F924CDF326B86350CB6EDB534ED68A20C11FA1BF77DE7C4AE5B83A5264D7594511F17E6A46EB33908AAAE13A37653478949885B4780EEF23094AB153414AB30AD668CEEDB923B05373E62A7A7B5DB3DFF72FC9F79B6D6159CBA292EE21037701566EADA53C6BEEFCF8075245DC9577DB9357B551B8DC1339BFA0146FFF79F21BCEAB16E9DF638AC5E172A8FA7BA37F608478C12C6DF203533E08CF04971A644CD2E17B7A33C19AE7DB14A80D34A44DB30F37A8EB480A908F4449A80E64CB065C86309AFB942DF2B2256A3E56B9E6E66362454F9AFAC0817AD4143177A44ECE79D7058179A3FA13156DCAA2614792FDCB8186D678151AB6984FFE1D47BE3B",
"publickey_exp": "010001", "success": true}'}
body:
string: !!python/unicode '{"timestamp": 12345678, "token_gid": 0, "publickey_mod":
"ddb3f29bd33f38db5947d85dc2e46bf033916d9caa95948a9af1146bf246915b93e66124e025f21588c05549614fe4c1ffa2ec92ea76bf1c580422bc1fc85700cce8dd14ec232e47a03581dc670ecb3a125bc597569384e3ec2707674458c666c563b7a0972deddd855b23884ca76032c2c5a99af6e8debe47aace8d0bdb8fc42bb9758ce8db0765649f78cd4fa4b3d123ed7cbce0c05b57dbb1a8cbb82923c7c9ca8fecab923db2f3a85a05d8c8bf5a1aeed479d3f533b009cce7d9f9ca196397206bdda46fb850a4c4ea7eb3383e419121fac575629e893959175aedc936cb71527958eb308bd555cf0386939b5a3c097fa6156aeef5eb805168b7bdb511fd",
"publickey_exp": "010001", "success": true}'
headers:
cache-control: [no-cache]
connection: [keep-alive]
content-length: ['622']
content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval''
https://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ *.google-analytics.com
https://www.google.com https://www.gstatic.com https://apis.google.com;
object-src ''none''; connect-src ''self'' http://steamcommunity.com https://steamcommunity.com
https://api.steampowered.com/; frame-src ''self'' http://store.steampowered.com/
https://store.steampowered.com/ http://www.youtube.com https://www.youtube.com
https://www.google.com https://sketchfab.com https://help.steampowered.com/;']
content-type: [application/json; charset=utf-8]
date: ['Sat, 04 Jun 2016 00:17:23 GMT']
expires: ['Mon, 26 Jul 1997 05:00:00 GMT']
server: [Apache]
x-frame-options: [DENY]
status: {code: 200, message: OK}
cache-control:
- no-cache
connection:
- keep-alive
content-length:
- '616'
content-type:
- application/json; charset=utf-8
server:
- nginx
vary:
- Accept-Encoding
x-frame-options:
- DENY
status:
code: 200
message: OK
- request:
body: ''
body: !!python/unicode ''
headers:
Accept: ['*/*']
Accept-Encoding: ['gzip, deflate']
Connection: [keep-alive]
Content-Length: ['574']
Content-Type: [application/x-www-form-urlencoded]
User-Agent: [python-steam/0.8.3 python-requests/2.9.1]
Accept:
- '*/*'
Accept-Encoding:
- identity
Connection:
- keep-alive
Content-Length:
- '570'
Content-Type:
- application/x-www-form-urlencoded
User-Agent:
- python-steam/1.0.0-alpha6 python-requests/2.21.0
method: POST
uri: https://steamcommunity.com/login/dologin/
response:
body: {string: !!python/unicode '{"requires_twofactor": false, "login_complete":
true, "transfer_urls": ["https://store.steampowered.com/login/transfer", "https://help.steampowered.com/login/transfer"],
body:
string: !!python/unicode '{"requires_twofactor": false, "login_complete": true,
"transfer_urls": ["https://store.steampowered.com/login/transfer", "https://help.steampowered.com/login/transfer"],
"transfer_parameters": {"steamid": "0", "remember_login": false, "token":
"AAAAAAAAAAAAAAAA", "token_secure": "BBBBBBBBBBBBBBBB", "auth": "ZZZZZZZZZZZZZZZZ"},
"success": true}'}
"success": true}'
headers:
cache-control: [no-cache]
connection: [keep-alive]
content-length: ['345']
content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval''
https://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ *.google-analytics.com
https://www.google.com https://www.gstatic.com https://apis.google.com;
object-src ''none''; connect-src ''self'' http://steamcommunity.com https://steamcommunity.com
https://api.steampowered.com/; frame-src ''self'' http://store.steampowered.com/
https://store.steampowered.com/ http://www.youtube.com https://www.youtube.com
https://www.google.com https://sketchfab.com https://help.steampowered.com/;']
content-type: [application/json; charset=utf-8]
date: ['Sat, 04 Jun 2016 00:17:24 GMT']
expires: ['Mon, 26 Jul 1997 05:00:00 GMT']
server: [Apache]
set-cookie: [steamLogin=0%7C%7CAAAAAAAAAAAAAAAA; path=/; httponly, steamLoginSecure=0%7C%7CBBBBBBBBBBBBBBBB;
path=/; httponly; secure, steamMachineAuth0=CCCCCCCCCCCCCCCC; path=/; httponly]
x-frame-options: [DENY]
status: {code: 200, message: OK}
cache-control:
- no-cache
connection:
- keep-alive
content-length:
- '345'
content-type:
- application/json; charset=utf-8
server:
- nginx
set-cookie:
- steamLogin=0%7C%7CAAAAAAAAAAAAAAAA; path=/; httponly
- steamLoginSecure=0%7C%7CBBBBBBBBBBBBBBBB; path=/; httponly; secure
- steamMachineAuth0=CCCCCCCCCCCCCCCC; path=/; httponly
vary:
- Accept-Encoding
x-frame-options:
- DENY
status:
code: 200
message: OK
version: 1

Loading…
Cancel
Save