Metadata-Version: 2.1
Name: Flask-Security
Version: 5.5.1
Summary: Quickly add security features to your Flask application.
Author: Matt Wright
Author-email: Chris Wagner <jwag.wagner+github@gmail.com>
Maintainer-email: Chris Wagner <jwag.wagner+github@gmail.com>
Project-URL: Documentation, https://flask-security.readthedocs.io
Project-URL: Homepage, https://github.com/pallets-eco/flask-security
Project-URL: Source, https://github.com/pallets-eco/flask-security
Project-URL: Tracker, https://github.com/pallets-eco/flask-security/issues
Project-URL: Releases, https://pypi.org/project/Flask-Security/
Keywords: flask security
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Development Status :: 5 - Production/Stable
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: AUTHORS
Requires-Dist: Flask >=3.0.0
Requires-Dist: Flask-Login >=0.6.3
Requires-Dist: Flask-Principal >=0.4.0
Requires-Dist: Flask-WTF >=1.1.2
Requires-Dist: email-validator >=2.0.0
Requires-Dist: markupsafe >=2.1.0
Requires-Dist: passlib >=1.7.4
Requires-Dist: wtforms >=3.0.0
Requires-Dist: importlib-resources >=5.10.0
Provides-Extra: babel
Requires-Dist: babel >=2.12.1 ; extra == 'babel'
Requires-Dist: flask-babel >=3.1.0 ; extra == 'babel'
Provides-Extra: common
Requires-Dist: argon2-cffi >=21.3.0 ; extra == 'common'
Requires-Dist: bcrypt >=4.0.1 ; extra == 'common'
Requires-Dist: flask-mailman >=0.3.0 ; extra == 'common'
Requires-Dist: bleach >=6.0.0 ; extra == 'common'
Provides-Extra: fsqla
Requires-Dist: flask-sqlalchemy >=3.1.0 ; extra == 'fsqla'
Requires-Dist: sqlalchemy >=2.0.18 ; extra == 'fsqla'
Requires-Dist: sqlalchemy-utils >=0.41.1 ; extra == 'fsqla'
Provides-Extra: low
Requires-Dist: Flask ==3.0.0 ; extra == 'low'
Requires-Dist: Flask-SQLAlchemy ==3.1.0 ; extra == 'low'
Requires-Dist: Flask-Babel ==3.1.0 ; extra == 'low'
Requires-Dist: Flask-Mailman ==0.3.0 ; extra == 'low'
Requires-Dist: Flask-Login ==0.6.3 ; extra == 'low'
Requires-Dist: Flask-WTF ==1.1.2 ; extra == 'low'
Requires-Dist: peewee ==3.16.2 ; extra == 'low'
Requires-Dist: argon2-cffi ==21.3.0 ; extra == 'low'
Requires-Dist: authlib ==1.2.0 ; extra == 'low'
Requires-Dist: babel ==2.12.1 ; extra == 'low'
Requires-Dist: bcrypt ==4.0.1 ; extra == 'low'
Requires-Dist: bleach ==6.0.0 ; extra == 'low'
Requires-Dist: freezegun ; extra == 'low'
Requires-Dist: jinja2 ==3.1.2 ; extra == 'low'
Requires-Dist: itsdangerous ==2.1.2 ; extra == 'low'
Requires-Dist: markupsafe ==2.1.2 ; extra == 'low'
Requires-Dist: mongoengine ==0.27.0 ; extra == 'low'
Requires-Dist: mongomock ==4.1.2 ; extra == 'low'
Requires-Dist: phonenumberslite ==8.13.11 ; extra == 'low'
Requires-Dist: qrcode ==7.4.2 ; extra == 'low'
Requires-Dist: requests ; extra == 'low'
Requires-Dist: setuptools ; extra == 'low'
Requires-Dist: sqlalchemy ==2.0.18 ; extra == 'low'
Requires-Dist: sqlalchemy-utils ==0.41.1 ; extra == 'low'
Requires-Dist: webauthn ==2.0.0 ; extra == 'low'
Requires-Dist: werkzeug ==3.0.1 ; extra == 'low'
Requires-Dist: zxcvbn ==4.4.28 ; extra == 'low'
Requires-Dist: pony ==0.7.16 ; (python_version < "3.11") and extra == 'low'
Requires-Dist: Flask-SQLAlchemy-Lite ==0.1.0 ; (python_version >= "3.10") and extra == 'low'
Provides-Extra: mfa
Requires-Dist: cryptography >=40.0.2 ; extra == 'mfa'
Requires-Dist: qrcode >=7.4.2 ; extra == 'mfa'
Requires-Dist: phonenumberslite >=8.13.11 ; extra == 'mfa'
Requires-Dist: webauthn >=2.0.0 ; extra == 'mfa'

Flask-Security
===================

.. image:: https://github.com/pallets-eco/flask-security/workflows/tests/badge.svg?branch=main&event=push
    :target: https://github.com/pallets-eco/flask-security

.. image:: https://codecov.io/gh/pallets-eco/flask-security/graph/badge.svg?token=ZYS0AST5M3
    :target: https://codecov.io/gh/pallets-eco/flask-security
    :alt: Coverage!

.. image:: https://img.shields.io/github/tag/pallets-eco/flask-security.svg
    :target: https://github.com/pallets-eco/flask-security/releases

.. image:: https://img.shields.io/pypi/dm/flask-security.svg
    :target: https://pypi.python.org/pypi/flask-security
    :alt: Downloads

.. image:: https://img.shields.io/pypi/dm/flask-security-too.svg
    :target: https://pypi.python.org/pypi/flask-security-too
    :alt: Downloads

.. image:: https://img.shields.io/github/license/pallets-eco/flask-security.svg
    :target: https://github.com/pallets-eco/flask-security/blob/main/LICENSE
    :alt: License

.. image:: https://readthedocs.org/projects/flask-security/badge/?version=latest
    :target: https://flask-security.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/python/black

.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white
    :target: https://github.com/pre-commit/pre-commit
    :alt: pre-commit

Quickly add security features to your Flask application.

Notes on this repo
------------------
As of 7/30/2024, the independent fork Flask-Security-Too replaced the archived
Flask-Security repo (now called Flask-Security-3.0). This repo is published at PyPI at
both Flask-Security and Flask-Security-Too.

Flask-Security-Too was a fork from the 3.0.0
version of the `Original <https://github.com/mattupstate/flask-security>`_

Pallets Community Ecosystem
----------------------------

This project is part of the Pallets Community Ecosystem. Pallets is the open
source organization that maintains Flask; Pallets-Eco enables community
maintenance of related projects. If you are interested in helping maintain
this project, please reach out on `the Pallets Discord server <https://discord.gg/pallets>`.

Goals
+++++

* Use `OWASP <https://github.com/OWASP/ASVS>`_ to guide best practice and default configurations.
* Be more opinionated and 'batteries' included by reducing reliance on abandoned projects and
  bundling in support for common use cases.
* Follow the `Pallets <https://github.com/pallets>`_ lead on supported versions, documentation
  standards and any other guidelines for extensions that they come up with.
* Continue to add newer authentication/authorization standards:
    * 'Social Auth' integrated (using authlib) (5.1)
    * WebAuthn support (5.0)
    * Two-Factor recovery codes (5.0)
    * First-class support for username as identity (4.1)
    * Support for freshness decorator to ensure sensitive operations have new authentication (4.0)
    * Support for email normalization and validation (4.0)
    * Unified signin (username, phone, passwordless) feature (3.4)


Contributing
++++++++++++
Issues and pull requests are welcome. Other maintainers are also welcome.
Please consult these `contributing`_ guidelines.

.. _contributing: https://github.com/pallets-eco/flask-security/blob/main/CONTRIBUTING.rst

Installing
----------
Install and update using `pip <https://pip.pypa.io/en/stable/quickstart/>`_:

::

    pip install -U Flask-Security


Resources
---------

- `Documentation <https://flask-security.readthedocs.io/>`_
- `Releases <https://pypi.org/project/Flask-Security/>`_
- `Issue Tracker <https://github.com/pallets-eco/flask-security/issues>`_
- `Code <https://github.com/pallets-eco/flask-security/>`_
