1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
.. rst-class:: hide-header
Welcome to Flask-Security
=========================
.. image:: _static/logo-owl-full-240.png
:alt: Flask-Security: add a drop of security to your Flask application.
:align: left
:width: 100%
:target: https://github.com/pallets-eco/flask-security
Flask-Security allows you to quickly add common security mechanisms to your
Flask application. They include:
1. Authentication (via session, Basic HTTP, or token)
2. User registration (optional)
3. Role and Permission management
4. Account activation (via email confirmation) (optional)
5. Password management (recovery and resetting) (optional)
6. Username management (configuration, recovery, change) (optional)
7. Two-factor authentication via email, SMS, authenticator (optional)
8. WebAuthn Support (optional)
9. 'social'/Oauth for authentication (e.g. google, github, ..) (optional)
10. Change email (optional)
11. Login tracking (optional)
12. JSON/Ajax Support
Many of these features are made possible by integrating various Flask extensions
and libraries. They include:
* `Flask-Login <https://flask-login.readthedocs.org/en/latest/>`_
* `Flask-Mailman <https://pypi.org/project/Flask-Mailman/>`_
* `Flask-Principal <https://pypi.org/project/Flask-Principal/>`_
* `Flask-WTF <https://pypi.org/project/Flask-WTF/>`_
* `itsdangerous <https://pypi.org/project/itsdangerous/>`_
* `passlib <https://pypi.org/project/passlib/>`_
* `QRCode <https://pypi.org/project/qrcode/>`_
* `webauthn <https://pypi.org/project/webauthn/>`_
* `authlib <https://pypi.org/project/Authlib/>`_
Additionally, it assumes you'll be using a common library for your database
connections and model definitions. Flask-Security supports the following Flask
extensions out of the box for data persistence:
1. `Flask-SQLAlchemy <https://pypi.python.org/pypi/flask-sqlalchemy/>`_
2. `MongoEngine <https://pypi.python.org/pypi/mongoengine/>`_
3. `Peewee Flask utils <https://docs.peewee-orm.com/en/latest/peewee/playhouse.html#flask-utils>`_
4. `PonyORM <https://pypi.python.org/pypi/pony/>`_ - NOTE: not currently working - Help needed!.
5. `SQLAlchemy sessions <https://docs.sqlalchemy.org/en/20/orm/session_basics.html>`_
6. `Flask-SQLAlchemy-Lite <https://pypi.python.org/pypi/flask-sqlalchemy-lite/>`_
Getting Started
----------------
.. toctree::
:maxdepth: 2
installation
quickstart
features
configuration
models
Customizing and Usage Patterns
-------------------------------
.. toctree::
:maxdepth: 2
customizing
webauthn
two_factor_configurations
spa
patterns
API
---
`OpenApi Spec`_
.. _OpenApi Spec: _static/openapi_view.html
.. toctree::
:maxdepth: 2
api
Additional Notes
----------------
.. toctree::
:maxdepth: 2
contributing
changelog
authors
|