Files
François Voron 72aa68c462 Native model and generic ID (#971)
* Use a generic Protocol model for User instead of Pydantic

* Remove UserDB Pydantic schema

* Harmonize schema variable naming to avoid confusions

* Revamp OAuth account model management

* Revamp AccessToken DB strategy to adopt generic model approach

* Make ID a generic instead of forcing UUIDs

* Improve generic typing

* Improve Strategy typing

* Tweak base DB typing

* Don't set Pydantic schemas on FastAPIUsers class: pass it directly on router creation

* Add IntegerIdMixin and export related classes

* Start to revamp doc for V10

* Revamp OAuth documentation

* Fix code highlights

* Write the 9.x.x ➡️ 10.x.x migration doc

* Fix pyproject.toml
2022-05-05 14:51:19 +02:00

40 lines
936 B
Markdown

# Users router
This router provides routes to manage users. Check the [routes usage](../../usage/routes.md) to learn how to use them.
## Setup
```py
import uuid
from fastapi import FastAPI
from fastapi_users import FastAPIUsers
from .db import User
from .schemas import UserRead, UserUpdate
fastapi_users = FastAPIUsers[User, uuid.UUID](
get_user_manager,
[auth_backend],
)
app = FastAPI()
app.include_router(
fastapi_users.get_users_router(UserRead, UserUpdate),
prefix="/users",
tags=["users"],
)
```
### Optional: user verification
You can require the user to be **verified** (i.e. `is_verified` property set to `True`) to access those routes. You have to set the `requires_verification` parameter to `True` on the router instantiation method:
```py
app.include_router(
fastapi_users.get_users_router(UserRead, UserUpdate, requires_verification=True),
prefix="/users",
tags=["users"],
)
```