Metadata-Version: 2.4
Name: Flask-Security
Version: 5.6.0
Summary: Quickly add security features to your Flask application.
Keywords: flask security
Author: Matt Wright
Author-email: Chris Wagner <jwag.wagner+github@gmail.com>
Maintainer-email: Chris Wagner <jwag.wagner+github@gmail.com>
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
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 :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Development Status :: 5 - Production/Stable
License-File: LICENSE.txt
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
Requires-Dist: babel>=2.12.1 ; extra == "babel"
Requires-Dist: flask_babel>=3.1.0 ; extra == "babel"
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"
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"
Requires-Dist: Flask==3.0.0 ; extra == "low"
Requires-Dist: Flask-SQLAlchemy==3.1.0 ; extra == "low"
Requires-Dist: Flask-SQLAlchemy-Lite==0.1.0 ; extra == "low" and (python_version>='3.10')
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.29.1 ; extra == "low"
Requires-Dist: mongomock==4.1.2 ; extra == "low"
Requires-Dist: pony==0.7.16 ; extra == "low" and (python_version<'3.11')
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: 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"
Project-URL: Documentation, https://flask-security.readthedocs.io
Project-URL: Homepage, https://github.com/pallets-eco/flask-security
Project-URL: Releases, https://pypi.org/project/Flask-Security/
Project-URL: Source, https://github.com/pallets-eco/flask-security
Project-URL: Tracker, https://github.com/pallets-eco/flask-security/issues
Provides-Extra: babel
Provides-Extra: common
Provides-Extra: fsqla
Provides-Extra: low
Provides-Extra: mfa

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

.. image:: https://github.com/pallets-eco/flask-security/actions/workflows/tests.yml/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. Please consider changing your
requirements file to point to flask-security.

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/>`_

