Metadata-Version: 2.4
Name: stapel-auth
Version: 0.14.2
Summary: Full-featured authentication Django app for the Stapel framework
License: MIT
Project-URL: Homepage, https://github.com/usestapel/stapel-auth
Project-URL: Repository, https://github.com/usestapel/stapel-auth
Project-URL: Documentation, https://github.com/usestapel/stapel-auth#readme
Project-URL: Changelog, https://github.com/usestapel/stapel-auth/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/usestapel/stapel-auth/issues
Keywords: django,stapel,authentication,jwt,passkey,totp,sso
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Django
Classifier: Framework :: Django :: 5.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: stapel-core<1.0,>=0.10
Requires-Dist: pyotp>=2.10
Requires-Dist: webauthn>=2.8
Requires-Dist: phonenumbers>=8.13
Provides-Extra: phone
Requires-Dist: twilio>=9.0; extra == "phone"
Provides-Extra: oauth
Requires-Dist: social-auth-app-django>=5.4; extra == "oauth"
Requires-Dist: python3-openid>=3.2; extra == "oauth"
Provides-Extra: saml
Requires-Dist: lxml>=5.0; extra == "saml"
Requires-Dist: signxml>=3.2; extra == "saml"
Provides-Extra: all
Requires-Dist: stapel-auth[oauth,phone,saml]; extra == "all"
Dynamic: license-file

# stapel-auth

[![CI](https://github.com/usestapel/stapel-auth/actions/workflows/ci.yml/badge.svg)](https://github.com/usestapel/stapel-auth/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/usestapel/stapel-auth/graph/badge.svg)](https://codecov.io/gh/usestapel/stapel-auth)
[![PyPI](https://img.shields.io/pypi/v/stapel-auth.svg)](https://pypi.org/project/stapel-auth/)

> Full-featured authentication — JWT, passkeys (WebAuthn), TOTP, QR login, OAuth2, SSO (SAML/OIDC), email link, phone OTP

Part of the [Stapel framework](https://github.com/usestapel) — composable Django apps for building production-grade platforms.

**Flow docs (SA-documents):** [Flows (EN)](docs/flows/en/README.md) · [Флоу (RU)](docs/flows/ru/README.md)

**Error reference:** [Errors (EN)](docs/errors.en.md) · [Ошибки (RU)](docs/errors.ru.md)

## Installation

```bash
pip install stapel-auth
```

## Quick start

```python
# settings.py
INSTALLED_APPS = [
    ...
    'stapel_auth',
]
```

## Bus events

### Emits
| `user.session_created` | [schema](schemas/emits/user.session_created.json) | User successfully authenticated and a new session was created. |
| `user.session_revoked` | [schema](schemas/emits/user.session_revoked.json) | A user session was revoked (logout or admin action). |

## License

MIT — see [LICENSE](LICENSE)
