# Flask-JWT-Extended
### Features
Flask-JWT-Extended not only adds support for using JSON Web Tokens (JWT) to Flask for protecting routes,
but also many helpful (and **optional**) features built in to make working with JSON Web Tokens
easier. These include:
- Adding custom claims to JSON Web Tokens
- Automatic user loading (`current_user`).
- Custom claims validation on received tokens
- [Refresh tokens](https://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/)
- First class support for fresh tokens for making sensitive changes.
- Token revoking/blocklisting
- Storing tokens in cookies and CSRF protection
### Usage
[View the documentation online](https://flask-jwt-extended.readthedocs.io/en/stable/)
### Upgrading from 3.x.x to 4.0.0
[View the changes](https://flask-jwt-extended.readthedocs.io/en/stable/v4_upgrade_guide/)
### Changelog
You can view the changelog [here](https://github.com/vimalloc/flask-jwt-extended/releases).
This project follows [semantic versioning](https://semver.org/).
### Chatting
Come chat with the community or ask questions at https://discord.gg/EJBsbFd
### Contributing
Before making any changes, make sure to install the development requirements
and setup the git hooks which will automatically lint and format your changes.
```bash
pip install -r requirements.txt
pre-commit install
```
We require 100% code coverage in our unit tests. You can run the tests locally
with `tox` which ensures that all tests pass, tests provide complete code coverage,
documentation builds, and style guide are adhered to
```bash
tox
```
A subset of checks can also be ran by adding an argument to tox. The available
arguments are:
- py37, py38, py39, py310, py311, py312, pypy3
- Run unit tests on the given python version
- mypy
- Run mypy type checking
- coverage
- Run a code coverage check
- docs
- Ensure documentation builds and there are no broken links
- style
- Ensure style guide is adhered to
```bash
tox -e py38
```
We also require features to be well documented. You can generate a local copy
of the documentation by going to the `docs` directory and running:
```bash
make clean && make html && open _build/html/index.html
```
Raw data
{
"_id": null,
"home_page": "https://github.com/vimalloc/flask-jwt-extended",
"name": "Flask-JWT-Extended",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7,<4",
"maintainer_email": "",
"keywords": "flask,jwt,json web token",
"author": "Lily Acadia Gilbert",
"author_email": "lily.gilbert@hey.com",
"download_url": "https://files.pythonhosted.org/packages/9a/ea/2f97d46df8deb419ff98c8931cd7a3a142e967ac33522a2f2204449eee52/Flask-JWT-Extended-4.6.0.tar.gz",
"platform": "any",
"description": "# Flask-JWT-Extended\n\n### Features\n\nFlask-JWT-Extended not only adds support for using JSON Web Tokens (JWT) to Flask for protecting routes,\nbut also many helpful (and **optional**) features built in to make working with JSON Web Tokens\neasier. These include:\n\n- Adding custom claims to JSON Web Tokens\n- Automatic user loading (`current_user`).\n- Custom claims validation on received tokens\n- [Refresh tokens](https://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/)\n- First class support for fresh tokens for making sensitive changes.\n- Token revoking/blocklisting\n- Storing tokens in cookies and CSRF protection\n\n### Usage\n\n[View the documentation online](https://flask-jwt-extended.readthedocs.io/en/stable/)\n\n### Upgrading from 3.x.x to 4.0.0\n\n[View the changes](https://flask-jwt-extended.readthedocs.io/en/stable/v4_upgrade_guide/)\n\n### Changelog\n\nYou can view the changelog [here](https://github.com/vimalloc/flask-jwt-extended/releases).\nThis project follows [semantic versioning](https://semver.org/).\n\n### Chatting\n\nCome chat with the community or ask questions at https://discord.gg/EJBsbFd\n\n### Contributing\n\nBefore making any changes, make sure to install the development requirements\nand setup the git hooks which will automatically lint and format your changes.\n\n```bash\npip install -r requirements.txt\npre-commit install\n```\n\nWe require 100% code coverage in our unit tests. You can run the tests locally\nwith `tox` which ensures that all tests pass, tests provide complete code coverage,\ndocumentation builds, and style guide are adhered to\n\n```bash\ntox\n```\n\nA subset of checks can also be ran by adding an argument to tox. The available\narguments are:\n\n- py37, py38, py39, py310, py311, py312, pypy3\n - Run unit tests on the given python version\n- mypy\n - Run mypy type checking\n- coverage\n - Run a code coverage check\n- docs\n - Ensure documentation builds and there are no broken links\n- style\n - Ensure style guide is adhered to\n\n```bash\ntox -e py38\n```\n\nWe also require features to be well documented. You can generate a local copy\nof the documentation by going to the `docs` directory and running:\n\n```bash\nmake clean && make html && open _build/html/index.html\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Extended JWT integration with Flask",
"version": "4.6.0",
"project_urls": {
"Homepage": "https://github.com/vimalloc/flask-jwt-extended"
},
"split_keywords": [
"flask",
"jwt",
"json web token"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bef7b5415a5ec78666408cd9af9e8163e2953374808d222625cff33f64adfd2a",
"md5": "52f98322e3f4cbd2e6e203ed7b4e6404",
"sha256": "63a28fc9731bcc6c4b8815b6f954b5904caa534fc2ae9b93b1d3ef12930dca95"
},
"downloads": -1,
"filename": "Flask_JWT_Extended-4.6.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "52f98322e3f4cbd2e6e203ed7b4e6404",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.7,<4",
"size": 22676,
"upload_time": "2023-12-13T05:29:35",
"upload_time_iso_8601": "2023-12-13T05:29:35.618535Z",
"url": "https://files.pythonhosted.org/packages/be/f7/b5415a5ec78666408cd9af9e8163e2953374808d222625cff33f64adfd2a/Flask_JWT_Extended-4.6.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9aea2f97d46df8deb419ff98c8931cd7a3a142e967ac33522a2f2204449eee52",
"md5": "e36a514df9d0228dd98202b47661f85e",
"sha256": "9215d05a9413d3855764bcd67035e75819d23af2fafb6b55197eb5a3313fdfb2"
},
"downloads": -1,
"filename": "Flask-JWT-Extended-4.6.0.tar.gz",
"has_sig": false,
"md5_digest": "e36a514df9d0228dd98202b47661f85e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7,<4",
"size": 34263,
"upload_time": "2023-12-13T05:29:37",
"upload_time_iso_8601": "2023-12-13T05:29:37.562253Z",
"url": "https://files.pythonhosted.org/packages/9a/ea/2f97d46df8deb419ff98c8931cd7a3a142e967ac33522a2f2204449eee52/Flask-JWT-Extended-4.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-13 05:29:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "vimalloc",
"github_project": "flask-jwt-extended",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"tox": true,
"lcname": "flask-jwt-extended"
}