Metadata-Version: 2.1
Name: flask-praetorian
Version: 1.1.0a2
Summary: Strong, Simple, and Precise security for Flask APIs (using jwt)
Home-page: https://flask-praetorian.readthedocs.io/en/latest/
License: MIT
Author: Tucker Beck
Author-email: tucker.beck@gmail.com
Requires-Python: >=3.5,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: flask (>=1.0,<2.0)
Requires-Dist: flask-buzz (>=0.1.7,<0.2.0)
Requires-Dist: flask-mail (>=0.9.1,<0.10.0)
Requires-Dist: passlib (>=1.7,<2.0)
Requires-Dist: pendulum (>=2.1,<3.0)
Requires-Dist: pyjwt (>=1.7,<2.0)
Project-URL: Documentation, https://flask-praetorian.readthedocs.io/en/latest/
Project-URL: Repository, https://github.com/dusktreader/flask-praetorian
Description-Content-Type: text/x-rst

.. image::  https://badge.fury.io/py/flask-praetorian.svg
   :target: https://badge.fury.io/py/flask-praetorian
   :alt:    Latest Published Version

.. image::  https://travis-ci.org/dusktreader/flask-praetorian.svg?branch=master
   :target: https://travis-ci.org/dusktreader/flask-praetorian
   :alt:    Build Status

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

******************
 flask-praetorian
******************

---------------------------------------------------
Strong, Simple, and Precise security for Flask APIs
---------------------------------------------------

API security should be strong, simple, and precise like a Roman Legionary.
This package aims to provide that. Using `JWT <https://jwt.io/>`_ tokens as
implemented by `PyJWT <https://pyjwt.readthedocs.io/en/latest/>`_,
*flask_praetorian* uses a very simple interface to make sure that the users
accessing your API's endpoints are provisioned with the correct roles for
access.

This project was heavily influenced by
`Flask-Security <https://pythonhosted.org/Flask-Security/>`_, but intends
to supply only essential functionality. Instead of trying to anticipate the
needs of all users, *flask-praetorian* will provide a simple and secure mechanism
to provide security for APIs specifically.

This extesion offers a batteries-included approach to security for your API.
For essential security concerns for Flask-based APIs,
`flask-praetorian <https://github.com/dusktreader/flask-praetorian>`_ should
supply everything you need.

The *flask-praetorian* package can be used to:

* Hash passwords for storing in your database
* Verify plaintext passwords against the hashed, stored versions
* Generate authorization tokens upon verification of passwords
* Check requests to secured endpoints for authorized tokens
* Supply expiration of tokens and mechanisms for refreshing them
* Ensure that the users associated with tokens have necessary roles for access
* Parse user information from request headers for use in client route handlers
* Support inclusion of custom user claims in tokens
* Register new users using email verification

All of this is provided in a very simple to configure and initialize flask
extension. Though simple, the security provided by *flask-praetorian* is strong
due to the usage of the proven security technology of JWT
and python's `PassLib <http://pythonhosted.org/passlib/>`_ package.

Super-quick Start
-----------------
 - requirements: `python` versions 3.4, 3.5, 3.6, and 3.7
 - install through pip: `$ pip install flask-praetorian`
 - minimal usage example: `example/basic.py <https://github.com/dusktreader/flask-praetorian/tree/master/example/basic.py>`_

Documentation
-------------

The complete documentation can be found at the
`flask-praetorian home page <http://flask-praetorian.readthedocs.io>`_

