govuk-onelogin-django
OpenID Connect client that works with GOV.UK One Login.
Package provides the following endpoints:
one-login/login/to login via GOV.UK One Login.one-login/callback/endpoint GOV.UK One Login will send logged-in users back to.back-channel-logout/endpoint GOV.UK One Login will send logout notifications to.
The example project also provides an example logout view that will log the user out of your service as well as GOV.UK One Login.
See class ExampleLogoutView for example that includes post_logout_redirect_uri
Documentation:
- GOV.UK One Login admin tool used to create a test application: https://admin.sign-in.service.gov.uk/
- GOV.UK One Login documentation: https://www.sign-in.service.gov.uk/documentation
- GOV.UK One Login technical documentation: https://docs.sign-in.service.gov.uk/
Quick start
Before starting, you should create an example app using the GOV.OK One Login admin tool.
-
Add "govuk_onelogin_django" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [ ..., "govuk_onelogin_django", ]
-
Include the govuk_onelogin_django URLconf in your project urls.py like this:
path("one-login/", include("govuk_onelogin_django.urls"))
-
Include OneLoginBackend to your AUTHENTICATION_BACKENDS like this:
AUTHENTICATION_BACKENDS.append("govuk_onelogin_django.backends.OneLoginBackend")
-
Include the following settings in your settings.py file
# Required start page that includes a link to log in to GOV.UK One Login LOGIN_URL = "your-login-start-page" # A view name that the logged-in user will be redirected to after logging in via GOV.UK One Login LOGIN_REDIRECT_URL = "view-to-send-logged-in-users-to" # All other GOV.UK One Login settings required to configure govuk-onelogin-django GOV_UK_ONE_LOGIN_CLIENT_ID = "Your client ID" GOV_UK_ONE_LOGIN_CLIENT_SECRET = "Your client secret" GOV_UK_ONE_LOGIN_OPENID_CONFIG_URL = "Either integration or production config url." GOV_UK_ONE_LOGIN_SCOPE = "Required scopes" GOV_UK_ONE_LOGIN_AUTHENTICATION_LEVEL = "Required authentication level" GOV_UK_ONE_LOGIN_CONFIDENCE_LEVEL = "Required confidence level"
Note:
GOV_UK_ONE_LOGIN_CLIENT_SECRETis a base64 encoded string of your private key. e.g.base64 -i private_key.pemSee this document detailing how to generate your keys.
Configuration
See configuration document detailing how to override the following:
- Service logout behaviour of back-channel-logout/ endpoint
- Override how GOV.UK One Login config is fetched
- how GOV_UK_ONE_LOGIN_CLIENT_ID is loaded
- How GOV_UK_ONE_LOGIN_CLIENT_SECRET is loaded
Example project
See the example_project README.md for details on how to build and run the example project.
Commands to build and test govuk-onelogin-django
- Install uv
- Update the project's environment:
uv sync - Run tests using local venv:
uv run pytest - Running the tests against all supported python versions:
- Install tox and tox-uv:
uv tool install tox --with tox-uv - Check tox is installed:
tox --version - run the tests:
tox run
- Install tox and tox-uv:
- Install pre-commit hooks:
uv run pre-commit install - Run pre-commit against all files:
uv run pre-commit run --all-files
linting / formatting
- Run the Ruff linter:
uv run ruff check - Resolve fixable errors:
uv run ruff check --fix - Run the Ruff formatter:
uv run ruff format - mypy:
uv run mypy --config-file=pyproject.toml
Publishing
- View the current project version:
uv version - Update the project version with dryrun:
uv version --bump minor --dry-run - Update the project version:
uv version --bump minor - Publish to PyPI:
uv publish --token <token>
Metadata
Release files for govuk-onelogin-django 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| govuk_onelogin_django-0.5.0.tar.gz | 96.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| govuk_onelogin_django-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 122.2 kB
Release files / govuk_onelogin_django-0.5.0.tar.gz
| Download URL | govuk_onelogin_django-0.5.0.tar.gz |
|---|---|
| Size | 96.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5a800a7951346b636cc47fc2e40652050589670ef4ca4322e2dfd9806c06c1c6
|
|
BLAKE2b-256 checksum How to use checksums |
727f797a2d02a534b1303b3f21df111404629e492483fa2744708986ba742cd2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / govuk_onelogin_django-0.5.0-py3-none-any.whl
| Download URL | govuk_onelogin_django-0.5.0-py3-none-any.whl |
|---|---|
| Size | 25.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c3ff5c5e8db8c6d84f45f9c4476c91fa627c180ec4a7193c6b9298b219b1912e
|
|
BLAKE2b-256 checksum How to use checksums |
ee63fbb7249df0acd99f52c9d1bd07284ac51a279084d30858aa8a522aa0d0f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|