# FastAPI Users

FastAPI Users

Ready-to-use and customizable users management for FastAPI

[![build](https://github.com/fastapi-users/fastapi-users/workflows/Build/badge.svg)](https://github.com/fastapi-users/fastapi-users/actions) [![codecov](https://codecov.io/gh/fastapi-users/fastapi-users/branch/master/graph/badge.svg)](https://codecov.io/gh/fastapi-users/fastapi-users) [![PyPI version](https://badge.fury.io/py/fastapi-users.svg)](https://badge.fury.io/py/fastapi-users) [![Downloads](https://pepy.tech/badge/fastapi-users)](https://pepy.tech/project/fastapi-users) [![All Contributors](https://img.shields.io/badge/all_contributors-46-orange.svg?style=flat-square)](#contributors-)

--- **Documentation**: https://fastapi-users.github.io/fastapi-users/ **Source Code**: https://github.com/fastapi-users/fastapi-users --- Add quickly a registration and authentication system to your [FastAPI](https://fastapi.tiangolo.com/) project. **FastAPI Users** is designed to be as customizable and adaptable as possible. ## Features * [X] Extensible base user model * [X] Ready-to-use register, login, reset password and verify e-mail routes * [X] Ready-to-use social OAuth2 login flow * [X] Dependency callables to inject current user in route * [X] Pluggable password validation * [X] Customizable database backend * [X] SQLAlchemy async backend included thanks to [encode/databases](https://www.encode.io/databases/) * [X] MongoDB async backend included thanks to [mongodb/motor](https://github.com/mongodb/motor) * [X] [Tortoise ORM](https://tortoise-orm.readthedocs.io/en/latest/) backend included * [X] [ormar](https://collerek.github.io/ormar/) backend included * [X] Multiple customizable authentication backends * [X] JWT authentication backend included * [X] Cookie authentication backend included * [X] Full OpenAPI schema support, even with several authentication backends ## πŸ“š Discover my book: *Building Data Science Applications with FastAPI* Building Data Science Applications with FastAPI **Develop, manage, and deploy efficient machine learning applications with Python** ### What is this book about? This book covers the following exciting features: * Explore the basics of modern Python and async I/O programming * Get to grips with basic and advanced concepts of the FastAPI framework * Implement a FastAPI dependency to efficiently run a machine learning model * Integrate a simple face detection algorithm in a FastAPI backend * Integrate common Python data science libraries in a web backend * Deploy a performant and reliable web backend for a data science application If you feel this book is for you, get your [copy](https://amzn.to/3kTvgjG) today! ## Contributors and sponsors βœ¨β˜•οΈ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

FranΓ§ois Voron

🚧

Paolo Dina

πŸ’΅ πŸ’»

Dmytro Ohorodnik

πŸ›

Matthew D. Scholefield

πŸ›

roywes

πŸ› πŸ’»

Satwik Kansal

πŸ“–

Edd Salkield

πŸ’» πŸ“–

mark-todd

πŸ’» πŸ“–

lill74

πŸ› πŸ’» πŸ“–

SelfhostedPro

πŸ›‘οΈ πŸ’»

Oskar Gmerek

πŸ“–

Martin Collado

πŸ› πŸ’»

Eric Lopes

πŸ“– πŸ›‘οΈ

Beau Breon

πŸ’»

Niyas Mohammed

πŸ“–

prostomarkeloff

πŸ“– πŸ’»

Marius MΓ©zerette

πŸ› πŸ€”

Nickolas Grigoriadis

πŸ›

Open Data Coder

πŸ€”

Mohammed Alshehri

πŸ€”

Tyler Renelle

πŸ€”

collerek

πŸ’»

Robert Bracco

πŸ’΅

Augusto Herrmann

πŸ“–

Smithybrewer

πŸ›

silllli

πŸ“–

alexferrari88

πŸ’΅

sandalwoodbox

πŸ›

Vlad Hoi

πŸ“–

Joe Nudell

πŸ›

Ben

πŸ’»

BoYanZh

πŸ“–

David Brochart

πŸ“–

Daan Beverdam

πŸ’»

StΓ©phane Raimbault

⚠️ πŸ›

Sondre LillebΓΈ Gundersen

πŸ“–

Maxim

πŸ“– πŸ›

scottdavort

πŸ’΅

John Dukewich

πŸ“–

Yasser Tahiri

πŸ’»

Brandon H. Goding

πŸ’»

PovilasK

πŸ’»

Just van den Broecke

πŸ’΅

jakemanger

πŸ› πŸ’»

Ikko Ashimine

πŸ’»

MatyΓ‘Ε‘ Richter

πŸ’»
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! ## Development ### Setup environment You should create a virtual environment and activate it: ```bash python -m venv venv/ ``` ```bash source venv/bin/activate ``` And then install the development dependencies: ```bash pip install -r requirements.dev.txt ``` ### Run unit tests You can run all the tests with: ```bash make test ``` The command will start a MongoDB container for the related unit tests. So you should have [Docker](https://www.docker.com/get-started) installed. Alternatively, you can run `pytest` yourself. The MongoDB unit tests will be skipped if no server is available on your local machine: ```bash pytest ``` There are quite a few unit tests, so you might run into ulimit issues where there are too many open file descriptors. You may be able to set a new, higher limit temporarily with: ```bash ulimit -n 2048 ``` ### Format the code Execute the following command to apply `isort` and `black` formatting: ```bash make format ``` ## License This project is licensed under the terms of the MIT license.