Skip to content

fastapi-users/fastapi-users

Β 
Β 

Repository files navigation

FastAPI Users

FastAPI Users

Ready-to-use and customizable users management for FastAPI

build codecov PyPI version Downloads

All 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 project. FastAPI Users is designed to be as customizable and adaptable as possible.

Features

  • Extensible base user model
  • Ready-to-use register, login, reset password and verify e-mail routes
  • Ready-to-use social OAuth2 login flow
  • Dependency callables to inject current user in route
  • Pluggable password validation
  • Customizable database backend
  • Multiple customizable authentication backends
    • Transports: Authorization header, Cookie
    • Strategies: JWT, Database, Redis
  • Full OpenAPI schema support, even with several authentication backends

In a hurry? Discover Fief, the open-source authentication platform

Fief

Fief

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):


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

πŸ’΅

This project follows the all-contributors specification. Contributions of any kind welcome!

Development

Setup environment

You should create a virtual environment and activate it:

python -m venv venv/
source venv/bin/activate

And then install the development dependencies:

make install

Run unit tests

You can run all the tests with:

make test

Alternatively, you can run pytest yourself.

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:

ulimit -n 2048

Format the code

Execute the following command to apply isort and black formatting:

make format

License

This project is licensed under the terms of the MIT license.