https://github.com/fastapi-users/fastapi-users
Ready-to-use and customizable users management for FastAPI
https://github.com/fastapi-users/fastapi-users
async asyncio fastapi fastapi-users python starlette users
Last synced: 6 months ago
JSON representation
Ready-to-use and customizable users management for FastAPI
- Host: GitHub
- URL: https://github.com/fastapi-users/fastapi-users
- Owner: fastapi-users
- License: mit
- Created: 2019-10-05T15:40:31.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-01-04T13:18:26.000Z (10 months ago)
- Last Synced: 2025-05-06T17:13:28.780Z (6 months ago)
- Topics: async, asyncio, fastapi, fastapi-users, python, starlette, users
- Language: Python
- Homepage: https://fastapi-users.github.io/fastapi-users/
- Size: 13.4 MB
- Stars: 5,171
- Watchers: 48
- Forks: 431
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-fastapi - FastAPI Users - Account management, authentication, authorization. (Third-Party Extensions / Auth)
- awesome-starred-test - fastapi-users/fastapi-users - Ready-to-use and customizable users management for FastAPI (Python)
- best-of-web-python - GitHub - 8% open · ⏱️ 04.01.2025): (Authorization & Authentication)
- awesome-fastapi - FastAPI Users - Account management, authentication, authorization. (Third-Party Extensions / Auth)
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.**
* **Open-source**: self-host it for free
* **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 and open-source
## 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
💻 📖

Börge Kiss
📖

Guilherme Caminha
📖

Téva KRIEF
💻

Essa Alshammri
📖

0xJan
🐛

Justin Thomas
💻

Adam Israel
💻

Nerixjk
🐛 💻

Mike Fotinakis
💻 🐛

lifengmds
💵

raindata5
📖

Mark Donnelly
📖

Alexander Zinov
💻

nimaxin
📖
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
## Development
### Setup environment
We use [Hatch](https://hatch.pypa.io/latest/install/) to manage the development environment and production build. Ensure it's installed on your system.
### Run unit tests
You can run all the tests with:
```bash
hatch run test:test
```
### Format the code
Execute the following command to apply linting and check typing:
```bash
hatch run lint
```
### Serve the documentation
You can serve the documentation locally with the following command:
```bash
hatch run docs
```
The documentation will be available on [http://localhost:8000](http://localhost:8000).
## License
This project is licensed under the terms of the MIT license.