https://github.com/commitwiz/fastapi-users
Ready-to-use and customizable users management for FastAPI
https://github.com/commitwiz/fastapi-users
async asyncio fastapi fastapi-users python starlette users
Last synced: 3 months ago
JSON representation
Ready-to-use and customizable users management for FastAPI
- Host: GitHub
- URL: https://github.com/commitwiz/fastapi-users
- Owner: commitwiz
- License: mit
- Created: 2025-10-02T13:19:14.000Z (3 months ago)
- Default Branch: all-contributors/add-antont
- Last Pushed: 2025-10-02T13:23:48.000Z (3 months ago)
- Last Synced: 2025-10-02T19:27:00.495Z (3 months ago)
- Topics: async, asyncio, fastapi, fastapi-users, python, starlette, users
- Language: Python
- Homepage:
- Size: 13.2 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# FastAPI Users
Ready-to-use and customizable users management for FastAPI
[](https://github.com/fastapi-users/fastapi-users/actions)
[](https://codecov.io/gh/fastapi-users/fastapi-users)
[](https://badge.fury.io/py/fastapi-users)
[](https://pepy.tech/project/fastapi-users)
[](#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 ORM async](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html) included
* [X] [MongoDB with Beanie ODM](https://github.com/roman-right/beanie/) included
* [X] Multiple customizable authentication backends
* [X] Transports: Authorization header, Cookie
* [X] Strategies: JWT, Database, Redis
* [X] Full OpenAPI schema support, even with several authentication backends
## In a hurry? Discover Fief, the open-source authentication platform

**Implementing registration, login, social auth is hard and painful. We know it. With our highly secure and open-source users management platform, you can focus on your app while staying in control of your users data.**
* Based on **FastAPI Users**!
* **Open-source**: self-host it for free or use our hosted version
* **Bring your own database**: host your database anywhere, we'll take care of the rest
* **Pre-built login and registration pages**: clean and fast authentication so you don't have to do it yourself
* **Official Python client** with built-in **FastAPI integration**
It's free!
## 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
💻

Hazedd
🐛 📖

Luis Roel
💵

Alexandr Makurin
💻 🐛

Leon Thurner
📖

Goran Mekić
📦

Gaganpreet
💻

Joe Taylor
💻

Richard Friberg
🐛

Kenton Parton
💵

Adrian Ciołek
🐛

⭕Alexander Rymdeko-Harvey
📖

schwannden
🚧 💻

Jimmy Angel Pérez Díaz
🛡️

Austin Orr
🚧

Carlo Eugster
🛡️

Vittorio Zamboni
💻

Andrey
📖

Can H. Tartanoglu
🐛

Filipe Nascimento
🛡️

dudulu
💵

Toni Alatalo
💻 📖
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
make install
```
### Run unit tests
You can run all the tests with:
```bash
make test
```
Alternatively, you can run `pytest` yourself.
```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.