Skip to main content

Introduction

We want to use APIs from web UIs that require login. What we want to do is to set up a session, login and then use the API of the page. The reason we want to do this is to use existing APIs. For instance, the user group management service at KTH, see 1{reference-type="ref" reference="UGEditor"}. We can then use the service, track the requests in the browser's developer tools. Then we can simply make the same requests from Python.

Screenshot of the KTH UG Editor with Firefox's Developer Tools open, showing network requests made.

For instance, we can redo the request in Figure 1 (above) like this:

import weblogin
import weblogin.kth
import os

ug = weblogin.AutologinSession([
                weblogin.kth.UGlogin(os.environ["KTH_LOGIN"],
                                     os.environ["KTH_PASSWD"],
                                     "https://app.kth.se/ug-gruppeditor/")
            ])

response = ug.get("https://app.kth.se/ug-gruppeditor/api/ug/users"
                  "?filter=memberOf eq 'u26yk1i3'")

The code above will access the API used by the KTH UG group editor service. It will automatically sign in when needed. The API URLs don't trigger a redirect to log in, they just give a 401 unauthorized error. However, we can use the main URL to the UI to trigger such an event, log in and then access the API. All this happens automatically in the background.

The way we do this is to subclass the requests.Session class to intercept all requests of a session to check for signs indicating that we must log in. When we detect such sign, we log in and resume as if nothing ever happened.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

weblogin-1.23.tar.gz (103.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

weblogin-1.23-py3-none-any.whl (59.4 kB view details)

Uploaded Python 3

File details

Details for the file weblogin-1.23.tar.gz.

File metadata

  • Download URL: weblogin-1.23.tar.gz
  • Upload date:
  • Size: 103.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.13.7 Linux/6.17.0-41-generic

File hashes

Hashes for weblogin-1.23.tar.gz
Algorithm Hash digest
SHA256 1ce32a2848cac75ee0e8b005dba6e4f8fe529baa1db87b84414fd92a713c8319
MD5 8389d15d5d144ca7779503ea9ce1692f
BLAKE2b-256 9f5a5f0e00f8985a6d5a44a56e6404b95d38cc515dd179365c1770dae6a9e0c7

See more details on using hashes here.

File details

Details for the file weblogin-1.23-py3-none-any.whl.

File metadata

  • Download URL: weblogin-1.23-py3-none-any.whl
  • Upload date:
  • Size: 59.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.13.7 Linux/6.17.0-41-generic

File hashes

Hashes for weblogin-1.23-py3-none-any.whl
Algorithm Hash digest
SHA256 ab03d04821a50b91ec09b7faddf68a48f269bd42fa12b6fdff6e4e1fac7e9c92
MD5 95b59f23ad4c3e35db2a39b37ce63393
BLAKE2b-256 b4b2e8757db2b6d0c64bd188aa403478bedcf866ef79c301bba18883eac57d6a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.23 This release

2 files

1.22

2 files

1.21

2 files

1.20

2 files

1.19

2 files

1.18

2 files

1.17

2 files

1.16

2 files

1.15

2 files

1.14

2 files

1.13

2 files

1.12

2 files

1.11

2 files

1.10

2 files

1.9

2 files

1.8

2 files

1.7

2 files

1.6

2 files

1.5

2 files

1.4

2 files

1.3

2 files

1.2

2 files

1.1

2 files

1.0

2 files

0.4

2 files

0.3

2 files

0.2

2 files

0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page